home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / gfx / 3d / rayst020.lha / basic.lha / Docs / RayStorm.doc next >
Text File  |  1996-09-15  |  75KB  |  2,512 lines

  1.  
  2.                                                               08 September 1996
  3.  
  4.                          R a y S t o r m   ›3mv1.25›0m
  5.  
  6.                      by Andreas Heumann and Mike Hesser
  7.  
  8.    ›3m Introduction    ›0m     What is RayStorm?
  9.    ›3m Requirements    ›0m     What do I need to run it?
  10.    ›3m Features        ›0m     What can RayStorm do?
  11.    ›3m Installation    ›0m     How can I install it?
  12.    ›3m ARexx interface ›0m     Which commands doe it have?
  13.    ›3m Examples        ›0m     How do I use the examples?
  14.    ›3m Tutorials       ›0m     Some tutorials
  15.    ›3m Tips&Tricks     ›0m     Useful tips,tricks and hints
  16.    ›3m Textures        ›0m     How do I use textures?
  17.    ›3m Known bugs      ›0m     Bugs
  18.    ›3m Legal Stuff     ›0m     Legal stuff
  19.    ›3m Register        ›0m     What must I do to register?
  20.    ›3m Credits         ›0m     Thanks go to...
  21.    ›3m Authors         ›0m     Who had written it?
  22.    ›3m PC-Version      ›0m     Where can I get the PC-version?
  23.    ›3m Homepage        ›0m     Where to find us on the World Wide Web
  24.    ›3m History         ›0m     What happened in the past?
  25.    ›3m Future          ›0m     What is planned for the future?
  26.    ›3m Literature      ›0m     Which books do we use?
  27.  
  28. ›0m›1mINTRODUCTION›0m
  29.  
  30. RayStorm is a fast octree based raytracer with many features. The
  31. script language that contains the description of the scene is easy to
  32. learn and offers some powerful capabilities such as ›3mMotion Blur›0m and
  33. ›3mDepth of Field›0m.  In addition, the script language has a full support for key
  34. frame animation.
  35.  
  36. Originally, RayStorm has been developed on Amiga using Maxon C++ 3.0
  37. Developer. The PC version was compiled with WATCOM C++ 10.5.
  38.  
  39. The demo version is limited to rendering graphics with a resolution of
  40. 160x128. The registered version does not have this limitation.
  41. Click ›3mhere›0m for information on how to register RayStorm.
  42.  
  43. A RayStorm script file (.ray files) is basically divided into the following
  44. sections:
  45. Various Settings of the Camera, the World and the Lights,
  46. Definitions of the different Textured Surfaces,
  47. Different Actors that set the Motion Blur and Animation parameters,
  48. Objects that are associated with Surfaces and Actors, and
  49. Settings for the final rendered graphic.
  50. For a more detailed description click ›3mhere›0m.
  51.  
  52.           The following topics cover some fundamentals on raytracing:
  53.    ›3m General        ›0m
  54.    ›3m Octree         ›0m
  55.    ›3m Antialiasing   ›0m
  56.    ›3m Depth of field ›0m
  57.    ›3m Soft shadows   ›0m
  58.    ›3m Surfaces       ›0m
  59.    ›3m Internals      ›0m
  60.    ›3m Virtual Memory ›0m
  61.    ›3m Motion Blur    ›0m
  62.  
  63. ›0m›1mGENERAL›0m
  64.  
  65. Raytracing makes it possible to generate fotorealistic pictures of objects.
  66.  
  67. A raytracer casts a ray form the position of the viewer through a scene
  68. and calculates possible intersections with the objects in that scene. If an
  69. intersection is found, the raytracer decides which color the object
  70. at this position has. If the object is reflective or transparent, the
  71. raytracer casts new rays from this positon and tests the intersections
  72. again and so on.
  73.  
  74. To make the surfaces of the objects more realistic, textures which
  75. simulate marble, wood other surfaces can be used.
  76.  
  77. ›0m›1mOCTREE›0m
  78. Simple raytracers determine the intersections with objects by testing all
  79. objects. This can lead to long rendering times if there are a lot of
  80. objects in the scene.
  81.  
  82. One solution of this problem is the Octree algorithm.
  83. This algorithm divides the scene into eight child-cells recursively until
  84. there is less than oe object in the cell or the maximum depth of the tree is reached.
  85.  
  86. Division of space with the octree algorithm:
  87.                _
  88.                /| z
  89.               /
  90.      /-------/-------/|
  91.  ^ y/       /       / |
  92.  | / left  / right / b|
  93.  |/       /       / |a|
  94.  |-------/-------| f|c|
  95.  |               | r|k|
  96.  |      up       | o| /
  97.  |---------------| n|/
  98.  |               | t|
  99.  |     down      | /  x
  100.  |---------------|/-->
  101.  
  102. ›0m›1mANTIALIASING›0m
  103.  
  104. RayStorm uses a algorithm called 'Adaptive Supersampling' to do antialiasing.
  105. For each pixel with a high contrast against its four neighbours, the algorithm
  106. casts new rays which are close to the ray used for the pixel itself. The new
  107. color of the pixel is calculated with the supersampled pixels and the gaussian
  108. filter.
  109.  
  110. Supersampling is also used to do ›3mdepth of field›0m and ›3msoft shadows›0m. So if
  111. you want to use this features you have to set a antialiasing value greater
  112. than one. (-> ›3mANTIALIAS›0m)
  113.  
  114. Example:
  115. Settings: squareroot of number of samples per pixel: 3
  116.  
  117. |--------|--------|--------|
  118. | super- | super- | super- |
  119. | sampled| sampled| sampled|
  120. |        |        |        |
  121. |--------|--------|--------|
  122. | super- |        | super- |
  123. | sampled| pixel  | sampled|
  124. |        |        |        |
  125. |--------|--------|--------|
  126. | super- | super- | super- |
  127. | sampled| sampled| sampled|
  128. |        |        |        |
  129. |--------|--------|--------|
  130.  
  131. |- Gaussian filter width  -|
  132.  
  133. The rendering time increases dramatically if you use antialiasing. The
  134. values below depend on the contrast of the picture.
  135.  
  136. Samplesetting     rendering time
  137.                   average case     worst case
  138. 1                 x1                x1
  139. 2                 x2                x4
  140. 3                 x4                x8
  141. 4                 x8               x16
  142. ...               ...              ...
  143.  
  144. Setting higher than 3 are not leading to significant better results.
  145.  
  146. ›0m›1mDEPTH OF FIELD›0m
  147.  
  148. Objects in computer graphics are normally rendered in an image plane
  149. using a pinhole camera model. That is to say, no matter how far or how
  150. near the objects are from the camera, they are always in sharp focus.
  151. Depth of field means that only objects at a certain distance from the
  152. camera lens are in sharp focus. Further and nearer objects produce a
  153. blurred image on the film plane.
  154.  
  155. [From 'Advanced Animation and Rendering Techniques']
  156.  
  157. To use depth of field you have to set ›3mANTIALIAS›0m to a value bigger
  158. than one.
  159.  
  160. ›3mExample for DOF›0m
  161.  
  162. ›0m›1mSOFT SHADOWS›0m
  163.  
  164. Real Light sources never have a zero size, therefore the shadows behind
  165. objects are never hard edged, they are soft. RayStorm generates this
  166. shadows by jittering the position of the light source. To use soft shadows
  167. you must set ›3mDISTRIB›0m to a value bigger than one.
  168.  
  169. ›0m›1mSURFACES›0m
  170.  
  171. Ambient (set with AMBIENT)
  172.  
  173. This determines the color of the object in sections which are in shadow.
  174.  
  175. Diffuse reflection (set with DIFFUSE)
  176.  
  177. The diffuse reflection falls off as the cosine of the angle between
  178. the normal and the ray to the light. Diffuse reflection determines the
  179. main color of the object (color in Imagine).
  180.  
  181. Specularly reflected highlights (set with SPECULAR)
  182.  
  183. Specularly reflected highlights fall off as the cosine of the angle
  184. between the reflected ray and the ray to the light source (specular in
  185. Imagine)
  186.  
  187. Specular reflection exponent (set with REFEXP)
  188.  
  189. Determines the size of the specularly reflected highlights, the higher
  190. the smaller the highlight (hardness in Imagine)
  191.  
  192. Diffuse transmission (set with DIFFTRANS)
  193.  
  194. Same as diffuse reflection, but only used if the lightsource is on
  195. opposite side of surface. Only applied if tranlucency is not 0.
  196.  
  197. Specular transmission (set with SPECTRANS)
  198.  
  199. Same as specular reflection, but only used if the lightsource is on
  200. opposite side of surface. Only applied if tranlucency is not 0.
  201.  
  202. Specular transmission exponent (set with TRANSEXP)
  203.  
  204. Same as specular reflection exponent, but only used if the lightsource
  205. is on opposite side of surface.
  206.  
  207. Specular transmittance (set with TRANSLUC)
  208.  
  209. Specular transmittance.
  210.  
  211. Transparency (set with TRANSPAR)
  212.  
  213. Transparent color (filter in Imagine).
  214.  
  215. Reflectivity (set with REFLECT)
  216.  
  217. Reflective color (reflect in Imagine).
  218.  
  219. Fog lenght (set with FOGLEN) (fog in Imagine).
  220.  
  221. Index of refraction (set with REFRINDEX)
  222.  
  223. Determines how the ray through transparent objects is refracted, the higher
  224. the more (index of refraction in Imagine).
  225. Is calculated with the formula
  226.  
  227.             lightspeed in vacuum
  228.    index = ----------------------
  229.             lightspeed in object    .
  230.  
  231.  
  232.  
  233. ›0m›1mINTERNALS›0m
  234.  
  235. ›0m›1mMemory requirements›0m
  236.  
  237. Triangle:      156 Bytes (flat shaded)
  238.                192 Bytes (Phong shaded)
  239. Sphere:         70 Bytes
  240. Plane:          78 Bytes
  241. Surface:       122 Bytes + length of name
  242. Screenbuffer:    4 Bytes per pixel
  243.  
  244. Memory requirements of the octree depends on the scene.
  245.  
  246. ›0m›1mVIRTUAL MEMORY›0m
  247.  
  248. RayStorm has been tested succesfully with VMM 3.1 from Martin Apel. If you
  249. want use RayStorm with virtual memory notice follwing hints:
  250.  
  251. - set Minimum VM allocation to 100 bytes if you define large scenes with
  252.   many objects, because RayStorm only allocates small pieces of memory for
  253.   single objects (less then 200 bytes). If you're loading Imagine objects
  254.   RayStorm allocates big blocks of memory so you don't have to set Minimum
  255.   VM allocation to 100.
  256. - use a partition or a pseudo-partition for VMM, this is faster
  257.  
  258. ›0m›1mMOTION BLUR›0m
  259.  
  260. Motion blur is temporal anti-aliasing. In animated sequences, the normal
  261. rendering process functions like a camera that possesses an infinitely
  262. short exposure time and this eliminates the blurring of the image due
  263. to relative motion between an object and the film plane. When a series of
  264. images, generated without motion blur, is displayed as an animated
  265. sequence, the illusion of smooth motion is diminished by strobing effects.
  266. As human beings we expect to see loss of detail in moving images.
  267.  
  268. Motion blur is accounted for in distributed ray tracing by extending the
  269. distributed sampling and jittering into the time domain and computing a
  270. solution that extracts information from the scen over the duration of the
  271. shutter exposure time. Objects are moved as required in the time period
  272. and visibility consequently changes over this time intervall. This method
  273. ensures that highlights and shadows are blurred or not, depending on the
  274. nature of the motion.
  275.  
  276. [From 'Advanced Animation and Rendering Techniques']
  277.  
  278. ›0m›1mREQUIREMENTS›0m
  279.  
  280. (1) You will need at least Kickstart 2.0.
  281.  
  282. (2) 881-version: 68020 processor and a mathematical coprocessor
  283.     (68881/882 or internal 68040/060 version).
  284.  
  285. (2) 020-version: 68020 processor (no math coprocessor needed)
  286.  
  287. (4) 000-version: 68000 processor (should even run on a Amiga 500
  288.     (not tested))
  289.  
  290. (5) 1MB RAM minimum
  291.  
  292. (6) RayStorm was written using MUI. So you need muimaster.library V2.3 or
  293.     better to run RayStorm.
  294.  
  295. recommended: 68030, 68882, Harddisk, GFX-Board
  296.  
  297. The faster the better :-).
  298.  
  299. Tested with:
  300. A1200 68030/50, 6MB, 200MB HD
  301. A2000 68040/30, 9MB, 250+250MB HD, Merlin Gfx-board
  302. A2000 68030/14, 68882/20, 4MB, 730+52MB HD
  303. A4000 68030/25, 68882/57, 10MB, 730+80MB HD, Cybervision 64 Gfx-board
  304.  
  305. ›0m›1mFEATURES›0m
  306.  
  307. - Up to 30% faster than Imagine (in trace mode).
  308. - ARexx-port. RayStorm can be used by all programs with ARexx-port.
  309. - Imagine compatible. RayStorm is designed to be almost compatible to
  310.   Imagine. It can load Imagine objects and use Imagine textures.
  311. - Octree algorithm used for rendering.
  312. - Motion blur for realistic simulations of moving objects.
  313. - Color, reflectivity, filter, altitude and specular mapping.
  314. - Flat, cylinder and sphere mapping.
  315. - Soft brush mapping.
  316. - Mathematical textures: wood, marble, bumps, checker, linear, radial and
  317.   stars.
  318. - Tranparency and physically correct refractions.
  319. - 8 levels of antialiasing (adaptive supersampling).
  320. - Rendering box.
  321. - Three builtin object types: sphere, plane and triangle.
  322. - Three light types: ambient, point and spot.
  323. - Depth of field with adjustable focal distance and aperture.
  324. - Soft shadows.
  325. - Backdrop picture.
  326. - Global fog and foggy objects.
  327. - Material attributes for realictic objects: ambient color, diffuse color,
  328.   specular color, specular reflection exponent, diffuse transmission color,
  329.   specular transmission color, specular transmission exponent, specular
  330.   transmittance, transparent color, reflective color, index of refraction,
  331.   foglength.
  332. - Bright objects.
  333. - Quick rendering.
  334. - Global reflection map.
  335. - Image formates: IFF-ILBM, PNG, TGA and Datatypes.
  336. - Object format: Imagine-TDDD, Autodesk 3DS
  337. - New image- and object-formats can be easily included because of the
  338.   modular concept.
  339.  
  340. ›0m›1mINSTALLATION›0m
  341.  
  342. There is a installation script included in the archive which uses the
  343. Commodore Installer. Run it to install RayStorm.
  344.  
  345. ›0m›1mAREXX INTERFACE›0m
  346.  
  347.    ›3mIntroduction›0m
  348.    ›3mAddress     ›0m
  349.    ›3mParameters  ›0m
  350.    ›3mCommands    ›0m
  351.    ›3m Errors     ›0m
  352.  
  353. ›0m›1mAREXX INTRODUCTION›0m
  354.  
  355. RayStorm is completly controled through it's ARexx interface. We recommend
  356. that you have a look at the ›3mtuturials›0m and the ›3mexample›0m
  357. script files in the 'ARexx' directory.
  358. These examples cover most of the features of RayStorm. Further encourage you
  359. to create your own files and make them available for the public. You can send
  360. them to us and we might add them as an example files in the next version of
  361. RayStorm or we include them to our ›3mHomepage›0m.
  362. In one of the next versions of RayStorm we'll create a more powerful
  363. language, which has a similar syntax to C++.
  364.  
  365. It's the same if you write the the commands in upper case or lower case.
  366. But it's important to enclose all commans in quotes because ARexx tries
  367. to interpret the line before it sends it to ARexx. It may happen that the
  368. line is changed and RayStorm don't do this what you want.
  369.  
  370. A typical structure of a scene file is:
  371.  
  372. /* title, comments, ... */
  373.  
  374. /* setting resolution, world, camera, lightsources */
  375. 'SETSCREEN 160 128'
  376. 'SETWORLD [0,0,0] [40,40,40]'
  377. 'SETCAMERA <0,0,80> <0,0,0> <0,1,0> 25 20'
  378. 'POINTLIGHT <10,-10,100> [255,255,255] SHADOW'
  379.  
  380. /* define surfaces and actors */
  381. 'NEWSURFACE TEST1'
  382. 'AMBIENT [255,0,0]'
  383. 'DIFFUSE [255,0,0]'
  384. 'SPECULAR [255,255,255]'
  385.  
  386. 'NEWSURFACE TEST2'
  387. 'AMBIENT [0,0,255]'
  388.  
  389. /* creating objects */
  390. 'SPHERE TEST1 <0,0,0> 10'
  391. 'SPHERE TEST2 <0,0,0> 10'
  392.  
  393. /* finally start to render the scene */
  394. 'STARTRENDER'
  395.  
  396. /* save the image */
  397. 'SAVEPIC "test.iff"'
  398.  
  399. 'CLEANUP'
  400.  
  401. ›0m›1mADDRESS›0m
  402.  
  403. The ARexx-address of RayStorm is 'RAYSTORM'.
  404.  
  405. ›0m›1mAREXX PARAMETERS›0m
  406.  
  407. The parameters of a command can be FLOATs, INTEGERs, VECTORs, COLORs,
  408. STRINGs, and IDENTIFIERs.
  409.  
  410. FLOAT     An FLOAT is a floating point number with single precision
  411.  
  412. NUMBER    A NUMBER is a simple integer number
  413.  
  414. VECTOR    A VECTOR is embedded in '<' '>' and consists of three FLOATs
  415.  
  416. COLOR     A COLOR is embedded in '[' ']' and consists of three INTEGERs
  417.           which range normally from 0 to 255, but you can also set negative
  418.           values or values above of 255.
  419.  
  420. STRING    A STRING consists of characters
  421.  
  422. KEYWORD   An KEYWORD is a switch and consists of uppercase characters
  423.  
  424. ›0m›1mPARAMETER CONVENTIONS›0m
  425.   /S - Switch.
  426.   /N - Number.
  427.   /A - Required.
  428.  
  429.   All other numeric parameters are floating point numbers.
  430.  
  431. ›0m›1mAREXX COMMANDS›0m
  432.  
  433.    ›3m General         ›0m
  434.    ›3m Objects         ›0m
  435.    ›3m Attributes      ›0m
  436.    ›3m Animation       ›0m
  437.  
  438. ›0m›1mAlphabetically sorted›0m
  439.  
  440. ›0m›1m-A-›0m
  441.   ›3mALIGNMENT  ›0m
  442.   ›3mAMBIENT    ›0m
  443.   ›3mANTIALIAS  ›0m
  444. ›0m›1m-B-›0m
  445.   ›3mBRUSH      ›0m
  446.   ›3mBRUSHPATH  ›0m
  447. ›0m›1m-C-›0m
  448.   ›3mCLEANUP    ›0m
  449. ›0m›1m-D-›0m
  450.   ›3mDIFFTRANS  ›0m
  451.   ›3mDIFFUSE    ›0m
  452.   ›3mDISPLAY    ›0m
  453.   ›3mDISTRIB    ›0m
  454. ›0m›1m-F-›0m
  455.   ›3mFOGLEN     ›0m
  456. ›0m›1m-G-›0m
  457.   ›3mGETERRORSTR›0m
  458. ›0m›1m-I-›0m
  459.   ›3mIMTEXTURE  ›0m
  460. ›0m›1m-L-›0m
  461.   ›3mLOADOBJ    ›0m
  462. ›0m›1m-N-›0m
  463.   ›3mNEWSURFACE ›0m
  464. ›0m›1m-O-›0m
  465.   ›3mOBJECTPATH ›0m
  466. ›0m›1m-P-›0m
  467.   ›3mPLANE      ›0m
  468.   ›3mPOINTLIGHT ›0m
  469.   ›3mPOSITION   ›0m
  470. ›0m›1m-Q-›0m
  471.   ›3mQUIT       ›0m
  472. ›0m›1m-R-›0m
  473.   ›3mREFEXP     ›0m
  474.   ›3mREFLECT    ›0m
  475.   ›3mREFRINDEX  ›0m
  476. ›0m›1m-S-›0m
  477.   ›3mSAVEPIC    ›0m
  478.   ›3mSETCAMERA  ›0m
  479.   ›3mSETSCREEN  ›0m
  480.   ›3mSETWORLD   ›0m
  481.   ›3mSIZE       ›0m
  482.   ›3mSPECTRANS  ›0m
  483.   ›3mSPECULAR   ›0m
  484.   ›3mSPHERE     ›0m
  485.   ›3mSPOTLIGHT  ›0m
  486.   ›3mSTARTRENDER›0m
  487. ›0m›1m-T-›0m
  488.   ›3mTEXTUREPATH›0m
  489.   ›3mTRANSEXP   ›0m
  490.   ›3mTRANSLUC   ›0m
  491.   ›3mTRANSPAR   ›0m
  492.   ›3mTRIANGLE   ›0m
  493. ›0m›1m-W-›0m
  494.   ›3mWINTOFRONT ›0m
  495.  
  496. ›0m›1mGENERAL AREXX-COMMANDS›0m
  497.  
  498. ›3mANTIALIAS  ›0m  sets antialiasing parameters
  499. ›3mBRUSHPATH  ›0m  sets brush path
  500. ›3mCLEANUP    ›0m  cleanups scene
  501. ›3mDISPLAY    ›0m  displays scene
  502. ›3mDISTRIB    ›0m  sets parameters for distributive sampling
  503. ›3mGETERRORSTR›0m  gets a error string for a given number
  504. ›3mOBJECTPATH ›0m  sets object path
  505. ›3mPOINTLIGHT ›0m  creates point lightsource
  506. ›3mQUIT       ›0m  quits RayStorm
  507. ›3mSAVEPIC    ›0m  saves rendered picture
  508. ›3mSETCAMERA  ›0m  sets camera parameters
  509. ›3mSETSCREEN  ›0m  sets screen parameters
  510. ›3mSETWORLD   ›0m  sets world parameters
  511. ›3mSPOTLIGHT  ›0m  creates spot lightsource
  512. ›3mSTARTRENDER›0m  starts rendering
  513. ›3mTEXTUREPATH›0m  sets texture path
  514. ›3mWINTOFRONT ›0m  brings window to front
  515.  
  516. ›0m›1mANTIALIAS›0m
  517.  
  518. ›0m›1mTemplate:›0m
  519.  SAMPLES/N/A,WIDTH,CONTRIB
  520. ›0m›1mArguments:›0m
  521.  NUMBER SAMPLES
  522.    squareroot of number of samples per pixel (max. 8)
  523.  FLOAT WIDTH
  524.    width of gaussian filter. The range is infinite but values between 1 and
  525.    3 are recommended.
  526.  COLOR CONTRIB
  527.    max. allowed contrast
  528. ›0m›1mDescription:›0m
  529.  Sets antialiasing parameters (see ›3mAntialiasing›0m)
  530. ›0m›1mDefault:›0m
  531.  ANTIALIAS 1 1.3 [51,38,76]
  532.  
  533. ›0m›1mBRUSHPATH›0m
  534.  
  535. ›0m›1mTemplate:›0m
  536.  PATH/A
  537. ›0m›1mArguments:›0m
  538.  STRING PATH
  539.    pathname
  540. ›0m›1mDescription:›0m
  541.  Defines the path where to search brushes. More than one path may be included
  542.  as long as they are separated by semi-colons.
  543. ›0m›1mExample:›0m
  544.  BRUSHPATH 'path1;path2'
  545.  
  546. ›0m›1mCLEANUP›0m
  547.  
  548. ›0m›1mTemplate:›0m
  549.  none
  550. ›0m›1mArguments:›0m
  551.  none
  552. ›0m›1mDescription:›0m
  553.  Deletes all defined objects, lightsources, surfaces and actors
  554.  
  555. ›0m›1mDISPLAY›0m
  556.  
  557. ›0m›1m!!! CAUTION !!!
  558. THIS COMMAND ISN'T RELEASED IN THIS VERSION YET
  559. !!! CAUTION !!!›0m
  560.  
  561. ›0m›1mTemplate:›0m
  562.  FLOYD/S
  563. ›0m›1mArguments:›0m
  564.  KEYWORD FLOYD/S
  565.    dither with Floyd-Steinberg algorithm
  566. ›0m›1mDescription:›0m
  567.  Displays rendered pic on screen
  568.  
  569. ›0m›1mDISTRIB›0m
  570.  
  571. ›0m›1mTemplate:›0m
  572.  SAMPLES/N,SOFTSHADOW/N
  573. ›0m›1mArguments:›0m
  574.  NUMBER SAMPLES/N
  575.    squareroot of number of samples per pixel for motionblur
  576.  NUMBER SOFTSHADOW/N
  577.    squareroot of number of samples per pixel for softshadows
  578. ›0m›1mDescription:›0m
  579.  Sets number of samples per pixel for distributive sampling (used for
  580.  
  581. ›0m›1mDefault:›0m
  582.  DISTRIB 1,1
  583.  
  584. ›0m›1mGETERRORSTR›0m
  585.  
  586. ›0m›1mTemplate:›0m
  587.  ERRNUM/N/A
  588. ›0m›1mArguments:›0m
  589.  NUMBER ERRNUM
  590.    error number
  591. ›0m›1mDescription:›0m
  592.  Returns the error string for the given error number
  593.  
  594. ›0m›1mOBJECTPATH›0m
  595.  
  596. ›0m›1mTemplate:›0m
  597.  PATH/A
  598. ›0m›1mArguments:›0m
  599.  PATH
  600.    pathname
  601. ›0m›1mDescription:›0m
  602.  Defines the path where to search objects. More than one path may be included
  603.  as long as they are separated by semi-colons.
  604. ›0m›1mExample:›0m
  605.  OBJECTPATH 'path1;path2'
  606.  
  607. ›0m›1mPOINTLIGHT›0m
  608.  
  609. ›0m›1mTemplate:›0m
  610.  POS/A,COLOR,SIZE,SHADOW/S,ACTOR,FALLOFF
  611. ›0m›1mArguments:›0m
  612.  VECTOR POS
  613.    position of pointlight
  614.  COLOR COLOR
  615.    color of light
  616.  VECTOR SIZE
  617.    size of light source (used for ›3msoft shadows›0m)
  618.  KEYWORD SHADOW/S
  619.    lightsource casts shadows
  620.  STRING ACTOR
  621.    name of actor
  622.  FLOAT FALLOFF
  623.    distance where the brightness of the light is zero
  624. ›0m›1mDescription:›0m
  625.  Creates a point lightsource. The lightsource casts shadows, if the keyword SHADOW is given
  626. ›0m›1mDefault:›0m
  627.  POINTLIGHT <0,0,0> [255,255,255] 0 ?? ?? 0
  628.  
  629. ›0m›1mQUIT›0m
  630.  
  631. ›0m›1mTemplate:›0m
  632.  none
  633. ›0m›1mArguments:›0m
  634.  none
  635. ›0m›1mDescription:›0m
  636.  Quits Raystrom
  637.  
  638. ›0m›1mSAVEPIC›0m
  639.  
  640. ›0m›1mTemplate:›0m
  641.  NAME/A,FORMAT
  642. ›0m›1mArguments:›0m
  643.  STRING NAME
  644.    the picture is saved under that name
  645.  STRING FORMAT
  646.    image format (TGA, PNG, ILBM; default ILBM)
  647. ›0m›1mDescription:›0m
  648.  Saves rendered picture 24-Bit IFF-ILBM-file, 24 Bit TGA or as PNG file. If
  649.  an error occures the command returns an error string.
  650. ›0m›1mExample:›0m
  651.  SAVEPIC 'path\name with extension'
  652.  
  653. ›0m›1mSETCAMERA›0m
  654.  
  655. ›0m›1mTemplate:›0m
  656.  POS/A,VIEWPOINT,VIEWUP,FOVX,FOVY,FOCALDIST,APERTURE,POSACTOR,VIEWACTOR
  657. ›0m›1mArguments:›0m
  658.  VECTOR POS
  659.    position of camera
  660.  VECTOR VIEWPOINT
  661.    position to which the camera point to
  662.  VECTOR VIEWUP
  663.    view up vector
  664.  FLOAT FOVX, FOVY
  665.    field of view (in degree) (20 degree creates camera like Imagine
  666.    default camera)
  667.  FLOAT FOCALDIST
  668.    distance from eye to focal plane
  669.  FLOAT APERTURE
  670.    aperture width (0 = pinhole) (-> ›3mdepth of field›0m)
  671.  STRING POSACTOR
  672.    name of position actor
  673.  STRING VIEWACTOR
  674.    name of look_at_actor
  675. ›0m›1mDescription:›0m
  676.  Sets the parameters of the camera
  677. ›0m›1mDefault:›0m
  678.  SETCAMERA <0,0,-10> <0,0,0> <0,1,0>  45 45 1. 0.
  679.  
  680. ›0m›1mSETSCREEN›0m
  681.  
  682. ›0m›1mTemplate:›0m
  683.  RESX/N/A,RESY/N/A,COLORS/N
  684. ›0m›1mArguments:›0m
  685.  NUMBER RESX, RESY
  686.    resolution
  687.  NUMBER COLORS
  688.    number of colors (not yet implemented)
  689. ›0m›1mDescription:›0m
  690.  Sets the resolution of the rendered picture. Note that in the demo-version
  691.  the resolution is limited to 160x128!
  692. ›0m›1mDefault:›0m
  693.  SETSCREEN 128 128
  694.  
  695. ›0m›1mSETWORLD›0m
  696.  
  697. ›0m›1mTemplate:›0m
  698.  BACK/A,AMBIENT,RANDJIT/S,BACKDROP,FOGLEN,FOGHEIGHT,FOGCOLOR,REFLMAP
  699. ›0m›1mArguments:›0m
  700.  COLOR BACK
  701.    backgroundcolor
  702.  COLOR AMBIENT
  703.    ambientcolor
  704.  KEYWORD RANDJIT
  705.   use random jitter for ›3mdepth of field›0m and ›3msoft shadows›0m
  706.  STRING BACKDROP
  707.    name of backdrop picture
  708.  FLOAT FOGLEN
  709.    global fog length
  710.  FLOAT FOGHEIGHT
  711.    highest fog y-coordinate
  712.  COLOR FOGCOLOR
  713.    fogcolor
  714.  STRING REFLMAP
  715.    name of reflection map
  716. ›0m›1mDescription:›0m
  717.  Sets world parameters. The resolution of the backdrop picture must be the
  718.  same as the resolution specified with ›3mSETSCREEN›0m.
  719. ›0m›1mDefault:›0m
  720.  SETWORLD [0,0,0] [0,0,0] ?? 32 0 [255,255,255] ??
  721.  
  722. ›0m›1mSPOTLIGHT›0m
  723.  
  724. ›0m›1mTemplate:›0m
  725.  POS/A,COLOR,LOOKPOINT,ANGLE,SIZE,SHADOW/S,ACTOR,LOOKP_ACTOR,FALLOFF
  726. ›0m›1mArguments:›0m
  727.  VECTOR POS
  728.    position of the spotlight
  729.  COLOR COLOR
  730.    color of light
  731.  VECTOR LOOKPOINT
  732.    point to which the spotlight shines at
  733.  FLOAT ANGLE
  734.    opening angel (in degree max. 180)
  735.  FLOAT SIZE
  736.    size of light source (used for ›3msoft shadows›0m)
  737.  KEYWORD SHADOW
  738.    lightsource cats shadows
  739.  STRING ACTOR
  740.    name of position actor
  741.  STRING LOOKP_ACTOR
  742.    name of look_at_actor
  743.  FLOAT FALLOFF
  744.    distance where the brightness of the light is zero
  745. ›0m›1mDescription:›0m
  746.  Creates a spotlight. The rays emitted from a spotlight are constrained
  747.  by a cone. The LOOKPOINT vector gives the center of the illuminated area.
  748. ›0m›1mDefault:›0m
  749.  SPOTLIGHT <0,0,0> [255,255,255] <0,0,1> 45 0 ?? ?? ?? 0
  750.  
  751. ›0m›1mSTARTRENDER›0m
  752.  
  753. ›0m›1mTemplate:›0m
  754.  QUICK/S,DEPTH/N,FROM,TO/N,LEFT/N,TOP/N,RIGHT/N,BOTTOM/N
  755. ›0m›1mArguments:›0m
  756.  KEYWORD QUICK
  757.    render quick (no shadows, reflections and transparency)
  758.  NUMBER DEPTH
  759.    depth of generated ›3moctree›0m
  760.  FLOAT FROM,TO
  761.    time code (default 0,0). If you want ›3mmotion blur›0m you have to
  762.    set FROM and TO to different values, else only set FROM.
  763.  NUMBER LEFT,TOP,RIGHT,BOTTOM
  764.    coordinates for rendering box. Picture is renderd only inside of
  765.    rectangle.
  766. ›0m›1mDescription:›0m
  767.  Starts rendering process. If you set QUICK shadows, reflections and
  768.  transparency are not calculated. In very complex scenes it is useful to
  769.  increase the octree depth in order to reach a better performance during
  770.  the rendering process. But this can only be done with enough memory!
  771.  Here are values for the file "chess.ray" renderd with a resolution of
  772.  160x128 on a A4000 with 25Mhz 68030 and 57MHz 68882:
  773.  
  774.  depth  memory [MByte]  init [mm:ss]  cleanup [mm:ss]  render [mm:ss]  total [mm:ss]
  775.    2          1.38         00:12           00:02           09:24          09:38
  776.    3          1.13         00:14           00:04           03:58          04:16
  777.    4          1.55         00:22           00:08           01:50          02:20
  778.    5          2.35         00:41           00:26           01:15          02:22
  779.    6          5.70         01:35           02:38           01:06          05:19
  780.  
  781. ›0m›1mDefault:›0m
  782.  STARTRENDER 3 0 0
  783.  
  784. ›0m›1mTEXTUREPATH›0m
  785.  
  786. ›0m›1mTemplate:›0m
  787.  PATH/A
  788. ›0m›1mArguments:›0m
  789.  PATH
  790.    pathname (format: 'path1;path2;...;pathn')
  791. ›0m›1mDescription:›0m
  792.  Defines the path where to search textures. More than one path may be included
  793.  as long as they are separated by semi-colons.
  794. ›0m›1mExample:›0m
  795.  TEXTUREPATH 'path1;path2'
  796.  
  797. ›0m›1mWINTOFRONT›0m
  798.  
  799. ›0m›1mTemplate:›0m
  800.  none
  801. ›0m›1mArguments:›0m
  802.  none
  803. ›0m›1mDescription:›0m
  804.  Brings RayStorm window in front
  805.  
  806. ›0m›1mAREXX-COMMANDS FOR CREATING OBJECTS›0m
  807.  
  808. ›3mLOADOBJ ›0m  loads an Imagine TDDD-file
  809. ›3mPLANE   ›0m  creates a plane (ground in Imagine)
  810. ›3mSPHERE  ›0m  creates a sphere
  811. ›3mTRIANGLE›0m  creates a triangle
  812.  
  813. ›0m›1mLOADOBJ›0m
  814.  
  815. ›0m›1mTemplate:›0m
  816.  NAME/A,POS,ALIGN,SCALE,ACTOR,SURFACE
  817. ›0m›1mArguments:›0m
  818.  STRING NAME
  819.    filename
  820.  VECTOR POS
  821.    position
  822.  VECTOR ALIGN
  823.    alignment (in degrees)
  824.  VECTOR SCALE
  825.    size factor
  826.  STRING ACTOR
  827.    name of actor
  828.  STRING SURFACE
  829.     name of surface to replace object surface
  830. ›0m›1mDescription:›0m
  831.  Loads an
  832.   - Imagine TDDD-file
  833.      loads attributes, triangles (with correct handling of sharp edges),
  834.      perfect spheres, planes, brushes and textures
  835.   - Autodesk 3D-Studio file
  836.      loads attributes, triangles and generates sharp edges
  837.  If you specify a surface, all surfaces of the object will have that surface
  838.  (overriding any surfaces defined in the object file).
  839.  
  840.  ›0m›1mWhere to get Imagine object files?›0m
  841.  Look on FTP-servers which support AMINET. For example try out
  842.   ftp.uni-paderborn.de
  843.   Path: ftp/aminet/pub/gfx/3dobj/
  844.  ›0m›1mWhere to get 3D-Studio object files?›0m
  845.  Try out these WWW-Pages:
  846.  For Star wars fans: http://www.loop.com/~hhc/
  847.  Mesh Mart: http://cedar.cic.net/~rtilmann/mm/index.htm
  848.  Objects Archive: http://sunserver1.rz.uni-duesseldorf.de/~pannozzo/3ds.html
  849. ›0m›1mDefault:›0m
  850.  LOADOBJ ??? <0,0,0> <0,0,0> <1,1,1>
  851.  
  852. ›0m›1mPLANE›0m
  853.  
  854. ›0m›1mTemplate:›0m
  855.  SURF/A,POS,NORM,ACTOR
  856. ›0m›1mArguments:›0m
  857.  STRING SURF
  858.    name of surface
  859.  VECTOR POS
  860.    position
  861.  VECTOR NORM
  862.    normal of the plane
  863.  STRING ACTOR
  864.    name of actor
  865. ›0m›1mDescription:›0m
  866.  Creates an infinite plane.
  867. ›0m›1mDefault:›0m
  868.  PLANE ??? <0,0,0> <0,1,0>
  869.  
  870. ›0m›1mSPHERE›0m
  871.  
  872. ›0m›1mTemplate:›0m
  873.  SURF/A,POS/A,RADIUS/A,ACTOR
  874. ›0m›1mArguments:›0m
  875.  STRING SURF
  876.    name of surface
  877.  VECTOR POS
  878.    center of sphere
  879.  FLOAT RADIUS
  880.    radius of sphere
  881.  STRING ACTOR
  882.    name of actor
  883. ›0m›1mDescription:›0m
  884.  Creates a sphere
  885. ›0m›1mDefault:›0m
  886.  SPHERE ?? <0,0,0> 1
  887.  
  888. ›0m›1mTRIANGLE›0m
  889.  
  890. ›0m›1mTemplate:›0m
  891.  SURF/A,P1/A,P2/A,P3/A,N1,N2,N3,ACTOR
  892. ›0m›1mArguments:›0m
  893.  STRING SURF
  894.    name of surface
  895.  VECTOR P1
  896.    first corner
  897.  VECTOR P2
  898.    second corner
  899.  VECTOR P3
  900.    third corner
  901.  VECTOR N1
  902.    normal at first corner
  903.  VECTOR N2
  904.    normal at second corner
  905.  VECTOR N3
  906.    normal at third corner
  907.  STRING ACTOR
  908.    name of actor
  909. ›0m›1mDescription:›0m
  910.  Creates a triangle with corners at position P1, P2 and P3. If you specify
  911.  the normals, a phong shaded triangle otherwise a flat triangle is created.
  912.  Computing the normals by hand is a difficult task, and should be done by
  913.  utility programs.
  914.  
  915. ›0m›1mAREXX-COMMANDS FOR SETTING ATTRIBUTES›0m
  916.  
  917. Every object must have a surface definition. With the following commands
  918. you can set the attributes of a surface. First you have to define the
  919. current surface with 'NEWSURFACE <name>'. Raystorm will set the attributes
  920. of the new surface to default values. Every following command such as
  921. AMBIENT or DIFFTRANS refers to the current surface and will override
  922. the corresponding default values.
  923.  
  924. The following examples define two surfaces:
  925.  
  926. NEWSURFACE RED
  927. AMBIENT [255,0,0]
  928. DIFFUSE [255,0,0]
  929.  
  930. NEWSURFACE WATER
  931. DIFFUSE [0,0,255]
  932. REFRINDEX 1.333
  933.  
  934. List of surface commands:
  935. ›3mNEWSURFACE›0m  creates a new surface
  936. ›3mAMBIENT   ›0m  sets ambient color
  937. ›3mBRUSH     ›0m  adds a brush
  938. ›3mDIFFTRANS ›0m  sets diffuse transmission color
  939. ›3mDIFFUSE   ›0m  sets diffuse color
  940. ›3mFOGLEN    ›0m  sets the foglength
  941. ›3mIMTEXTURE ›0m  adds a Imagine texture
  942. ›3mREFEXP    ›0m  sets the specular reflection exponent
  943. ›3mREFLECT   ›0m  sets the specular reflectivity
  944. ›3mREFRINDEX ›0m  sets the index of refraction
  945. ›3mSPECTRANS ›0m  sets the specular transmission
  946. ›3mSPECULAR  ›0m  sets the specular color
  947. ›3mTRANSEXP  ›0m  sets the specular transmission exponent
  948. ›3mTRANSLUC  ›0m  sets the specular transmittance
  949. ›3mTRANSPAR  ›0m  sets the diffuce transmittance
  950.  
  951. ›0m›1mAMBIENT›0m
  952.  
  953. ›0m›1mTemplate:›0m
  954.  COLOR/A
  955. ›0m›1mArguments:›0m
  956.  STRING COLOR
  957.    color
  958. ›0m›1mDescription:›0m
  959.  Sets the ambient color of surface. Determines the color of the object in
  960.  sections, which are in shadow.
  961. ›0m›1mDefault:›0m
  962.  AMBIENT [255,255,255]
  963.  
  964. ›0m›1mBRUSH›0m
  965.  
  966. ›0m›1mTemplate:›0m
  967.  NAME/A,TYPE/A,WRAP/A,POS/A,ALIGN/A,SIZE/A,REPEAT/S,MIRROR/S,SOFT/S,ACTOR
  968. ›0m›1mArguments:›0m
  969.  STRING NAME
  970.    filename of brush
  971.  KEYWORD TYPE [COLOR|REFLECT|FILTER|ALTITUDE|SPECULAR]
  972.    type of brush
  973.  KEYWORD WRAP [FLAT|WRAPX|WRAPY|WRAPXY]
  974.    brush wrapping method
  975.  VECTOR POS
  976.    position
  977.  VECTOR ALIGN
  978.    alignment
  979.  VECTOR SIZE
  980.    size of brush
  981.  KEYWORD REPEAT
  982.    if set, brush is repeated like a tile
  983.  KEYWORD MIRROR
  984.    if set, brush is mirrord (when REPEAT is specified)
  985.  KEYWORD SOFT
  986.    if set, brush color is interpolated softly
  987.  STRING ACTOR
  988.    name of actor
  989. ›0m›1mDescription:›0m
  990.  Adds a brush to surface definition. A brush is a bitmap which is wrapped
  991.  around an  object. The specified file will be searched for in the current
  992.  directory. If it wasn't found there and a ›3mBRUSHPATH›0m
  993.  be searched there.
  994.  If an error occures the command returns an error string. Supported formats
  995.  are: IFF-ILBM, PNG, TGA and Datatypes.
  996.  
  997.  Constants for type:
  998.  COLOR
  999.   Replaces the surface color of the object with the image (sets ›3mDIFFUSE›0m and
  1000.   ›3mAMBIENT›0m color).
  1001.  REFLECT
  1002.   Map covers the surface and reflects environment (see ›3mREFLECT›0m)).
  1003.  FILTER
  1004.   Uses the white color to pass colors and the black area to hold back color
  1005.   with a variance between two colors (like with ›3mTRANSPAR›0m).
  1006.  ALTITUDE
  1007.   The red values of the brush are used to give the surface an appearence of
  1008.   bumpiness.
  1009.  SPECULAR
  1010.   The rgb values set the specular color of the surface (see ›3mSPECULAR›0m).
  1011.  
  1012.  Constants for wrap :
  1013.  FLAT
  1014.   The brush is projected to X-Y plane, the axis is in the middle of the
  1015.   brush area, length is the distance from the middle to the border.
  1016.  WRAPX
  1017.   The brush is wrapped around the x-axis, like on a cylinder. The left edge
  1018.   of the brush begins at the posititve X axis and wraps the brush around
  1019.   the cylinder from 'west' to 'east'.
  1020.  WRAPY
  1021.   Same as WRAPX, but wrapping is around the y-axis.
  1022.  WRAPXY
  1023.   Wrapping both: around X and Y axis. It is assumed, that the object is a
  1024.   sphere. The Y axis is the north/south pole of the spherical mapping. The
  1025.   left edge of the brush begins at the positive X axis and wraps the brush
  1026.   around the sphere from 'west' to 'east'. The brush covers the sphere
  1027.   exactly once.
  1028. ›0m›1mExample:›0m
  1029.  BRUSH "earth.iff" COLOR, WRAPXY <0,0,0> <0,0,0> <0.1,0.1,0.1>
  1030.  
  1031. ›0m›1mDIFFTRANS›0m
  1032.  
  1033. ›0m›1mTemplate:›0m
  1034.  COLOR/A
  1035. ›0m›1mArguments:›0m
  1036.  COLOR COLOR
  1037.    color
  1038. ›0m›1mDescription:›0m
  1039.  Sets the diffuse transmission color of surface. Same as diffuse reflection,
  1040.  but only used if the lightsource is on opposite side of surface. Only
  1041.  applied if tranlucency is not set to zero.
  1042. ›0m›1mDefault:›0m
  1043.  DIFFTRANS [0,0,0]
  1044.  
  1045. ›0m›1mDIFFUSE›0m
  1046.  
  1047. ›0m›1mTemplate:›0m
  1048.  COLOR/A
  1049. ›0m›1mArguments:›0m
  1050.  COLOR COLOR
  1051.    color
  1052. ›0m›1mDescription:›0m
  1053.  Sets the diffuse color of surface. The diffuse reflection falls off as
  1054.  the cosine of the angle between the normal and the ray to the light.
  1055.  Diffuse reflection determines the main color of the object (color in
  1056.  Imagine).
  1057. ›0m›1mDefault:›0m
  1058.  DIFFUSE [255,255,255]
  1059.  
  1060. ›0m›1mFOGLEN›0m
  1061.  
  1062. ›0m›1mTemplate:›0m
  1063.  VALUE/A
  1064. ›0m›1mArguments:›0m
  1065.  FLOAT VALUE/A
  1066.    foglength
  1067. ›0m›1mDescription:›0m
  1068.  Sets the foglength of the surface. The fog color is set with ›3mTRANSPAR›0m.
  1069. ›0m›1mDefault:›0m
  1070.  FOGLEN 0
  1071.  
  1072. ›0m›1mIMTEXTURE›0m
  1073.  
  1074. ›0m›1mTemplate:›0m
  1075.  NAME/A,POS,ALIGN,SIZE,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,ACTOR
  1076. ›0m›1mArguments:›0m
  1077.  STRING NAME
  1078.    name of Imagine texture file
  1079.  VECTOR POS
  1080.    position
  1081.  VECTOR ALIGN
  1082.    alignment
  1083.  VECTOR SIZE
  1084.    size of texture axis
  1085.  FLOAT P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16
  1086.    texture parameters
  1087.  STRING ACTOR
  1088.    name of actor
  1089. ›0m›1mDescription:›0m
  1090.  Adds a Imagine texture to surface
  1091. ›0m›1mDefault:›0m
  1092.  defaults are taken from texture if not all paramters are given
  1093. ›0m›1mExample:›0m
  1094.  IMTEXTURE "checker.itx" <0.1,0.1,0.1> <0,0,0> <2,2,2>
  1095.  
  1096. ›0m›1mNEWSURFACE›0m
  1097.  
  1098. ›0m›1mTemplate:›0m
  1099.  NAME/A,BRIGHT/S
  1100. ›0m›1mArguments:›0m
  1101.  STRING NAME
  1102.    name
  1103.  KEYWORD BRIGHT
  1104.    if set, the brightness of the surface is everywhere the same
  1105. ›0m›1mDescription:›0m
  1106.  Defines a new surface.
  1107.  
  1108. ›0m›1mREFEXP›0m
  1109.  
  1110. ›0m›1mTemplate:›0m
  1111.  VALUE/A
  1112. ›0m›1mArguments:›0m
  1113.  FLOAT VALUE
  1114.    specular reflection exponent
  1115. ›0m›1mDescription:›0m
  1116.  Sets the specular reflection exponent of surface. Determines the size of
  1117.  the specularly reflected highlights, the higher the smaller the highlight
  1118.  (hardness in Imagine).
  1119. ›0m›1mDefault:›0m
  1120.  REFEXP 12.
  1121.  
  1122. ›0m›1mREFLECT›0m
  1123.  
  1124. ›0m›1mTemplate:›0m
  1125.  COLOR/A
  1126. ›0m›1mArguments:›0m
  1127.  COLOR COLOR
  1128.    color
  1129. ›0m›1mDescription:›0m
  1130.  Sets the specular reflectivity of surface
  1131. ›0m›1mDefault:›0m
  1132.  REFLECT [0,0,0]
  1133.  
  1134. ›0m›1mREFRINDEX›0m
  1135.  
  1136. ›0m›1mTemplate:›0m
  1137.  VALUE/A
  1138. ›0m›1mArguments:›0m
  1139.  FLOAT VALUE
  1140.    index of refraction
  1141. ›0m›1mDescription:›0m
  1142.  Sets the index of refraction of surface. Determines how the ray is refracted
  1143.  through transparent objects, the higher the more (index of refraction in
  1144.  Imagine).
  1145. ›0m›1mDefault:›0m
  1146.  REFRINDEX 1.
  1147. ›0m›1mExamples:›0m
  1148.  MATERIAL                      Index
  1149.  -------------------------------------
  1150.  Vacuum ...................... 1.00000 (exactly)
  1151.  
  1152.  Air (STP).................... 1.00029
  1153.  Acetone ..................... 1.36
  1154.  Alcohol ..................... 1.329
  1155.  Amorphous Selenium .......... 2.92
  1156.  Calspar1 .................... 1.66
  1157.  Calspar2 .................... 1.486
  1158.  Carbon Disulfide ............ 1.63
  1159.  Chromium Oxide .............. 2.705
  1160.  Copper Oxide ................ 2.705
  1161.  Crown Glass ................. 1.52
  1162.  Crystal ..................... 2.00
  1163.  Diamond ..................... 2.417
  1164.  Emerald ..................... 1.57
  1165.  Ethyl Alcohol ............... 1.36
  1166.  Flourite .................... 1.434
  1167.  Fused Quartz ................ 1.46
  1168.  Heaviest Flint Glass ........ 1.89
  1169.  Heavy Flint Glass ........... 1.65
  1170.  Glass ....................... 1.5
  1171.  Ice ......................... 1.309
  1172.  Iodine Crystal .............. 3.34
  1173.  Lapis Lazuli ................ 1.61
  1174.  Light Flint Glass ........... 1.575
  1175.  Liquid Carbon Dioxide ....... 1.20
  1176.  Polystyrene ................. 1.55
  1177.  Quartz 1 .................... 1.644
  1178.  Quartz 2 .................... 1.553
  1179.  Ruby ........................ 1.77
  1180.  Sapphire .................... 1.77
  1181.  Sodium Chloride (Salt) 1 .... 1.544
  1182.  Sodium Chloride (Salt) 2 .... 1.644
  1183.  Sugar Solution (30%) ........ 1.38
  1184.  Sugar Solution (80%) ........ 1.49
  1185.  Topaz ....................... 1.61
  1186.  Water (20 C) ................ 1.333
  1187.  Zinc Crown Glass ............ 1.517
  1188.  
  1189. ›0m›1mSPECTRANS›0m
  1190.  
  1191. ›0m›1mTemplate:›0m
  1192.  COLOR/A
  1193. ›0m›1mArguments:›0m
  1194.  COLOR COLOR
  1195.    color
  1196. ›0m›1mDescription:›0m
  1197.  Sets the specular transmission color of surface. Same as specular
  1198.  reflection, but only used if the lightsource is on opposite side of
  1199.  surface. Only applied if tranlucency is not 0.
  1200. ›0m›1mDefault:›0m
  1201.  SETSPECTRANS [255,255,255]
  1202.  
  1203. ›0m›1mSPECULAR›0m
  1204.  
  1205. ›0m›1mTemplate:›0m
  1206.  COLOR/A
  1207. ›0m›1mArguments:›0m
  1208.  COLOR COLOR
  1209.    color
  1210. ›0m›1mDescription:›0m
  1211.  Sets the specular color of surface. Specularly reflected highlights fall
  1212.  off as the cosine of the angle between the reflected ray and the ray to the
  1213.  light source (specular in Imagine).
  1214. ›0m›1mDefault:›0m
  1215.  SPECULAR [255,255,255]
  1216.  
  1217. ›0m›1mTRANSEXP›0m
  1218.  
  1219. ›0m›1mTemplate:›0m
  1220.  VALUE/A
  1221. ›0m›1mArguments:›0m
  1222.  FLOAT VALUE
  1223.    specular transmission exponent
  1224. ›0m›1mDescription:›0m
  1225.  Sets the specular transmission exponent of surface. Same as specular
  1226.  reflection exponent, but only used if the lightsource is on opposite
  1227.  side of surface.
  1228. ›0m›1mDefault:›0m
  1229.  TRANSEXP 12.
  1230.  
  1231. ›0m›1mTRANSLUC›0m
  1232.  
  1233. ›0m›1mTemplate:›0m
  1234.  VALUE/A
  1235. ›0m›1mArguments:›0m
  1236.  FLOAT VALUE
  1237.    specular transmittance
  1238. ›0m›1mDescription:›0m
  1239.  Sets the specular transmittance of surface
  1240. ›0m›1mDefault:›0m
  1241.  TRANSLUC 0
  1242.  
  1243. ›0m›1mTRANSPAR›0m
  1244.  
  1245. ›0m›1mTemplate:›0m
  1246.  COLOR/A
  1247. ›0m›1mArguments:›0m
  1248.  COLOR COLOR
  1249.    color
  1250. ›0m›1mDescription:›0m
  1251.  Sets the diffuse transmittance of surface
  1252. ›0m›1mDefault:›0m
  1253.  TRANSPAR [0,0,0]
  1254.  
  1255.    ›0m›1mAREXX-COMMANDS FOR ANIMATION CONTROL›0m
  1256.  
  1257. ›3mALIGNMENT›0m  sets alignment
  1258. ›3mNEWACTOR ›0m  creates a new actor
  1259. ›3mPOSITION ›0m  sets position
  1260. ›3mSIZE     ›0m  sets size
  1261.  
  1262. ›0m›1mALIGNMENT›0m
  1263.  
  1264. ›0m›1mTemplate:›0m
  1265.  FROM/A,TO/A,ALIGN/A,TYPE
  1266. ›0m›1mArguments:›0m
  1267.  FLOAT FROM,TO
  1268.    time interval
  1269.  VECTOR ALIGN
  1270.    alignment at the end of the interval
  1271.  KEYWORD TYPE [LINEAR]
  1272.    interpolation type (currently only linear)
  1273. ›0m›1mDescription:›0m
  1274.  Sets the alignment of the object. At time to, the actor will have this
  1275.  alignment.
  1276.  'TYPE' can be one of the following identifiers:
  1277.    LINEAR  the object moves on a straight line between the positions
  1278.    SPLINE  the object moves on a spline curve between the positions. (NOT
  1279.            IMPLEMENTED YET)
  1280.  
  1281. ›0m›1mNEWACTOR›0m
  1282.  
  1283. ›0m›1mTemplate:›0m
  1284.  NAME/A,POS,ALIGN,SIZE
  1285. ›0m›1mArguments:›0m
  1286.  STRING NAME
  1287.    name of actor
  1288.  VECTOR POS
  1289.    initial position of actor
  1290.  VECTOR ALIGN
  1291.    initial alignment (in degrees)
  1292.  VECTOR SIZE
  1293.    initial size
  1294. ›0m›1mDescription:›0m
  1295.  Creates a new actor. Usually a NEWACTOR definition is followed by one or more
  1296.  POSITION, ALIGNMENT, SIZE commands which define the properties of the actor
  1297.  at a certain time.
  1298.  For more information on NEWACTOR, please click ›3mhere›0m.
  1299. ›0m›1mDefault:›0m
  1300.  NEWACTOR ??? <0,0,0> <0,0,0> <1,1,1>
  1301.  
  1302. ›0m›1mPOSITION›0m
  1303.  
  1304. ›0m›1mTemplate:›0m
  1305.  FROM/A,TO/A,POS/A,TYPE
  1306. ›0m›1mArguments:›0m
  1307.  FLOAT FROM,TO
  1308.    time interval
  1309.  VECTOR POS
  1310.    position at the end of the interval
  1311.  KEYWORD TYPE [LINEAR]
  1312.    interpolation type (currently only linear)
  1313. ›0m›1mDescription:›0m
  1314.  Sets the position of the object. At time to, the actor will be at this
  1315.  position.
  1316.  'TYPE' can be one of the following identifiers:
  1317.    LINEAR  the object moves on a straight line between the positions
  1318.    SPLINE  the object moves on a spline curve between the positions. (NOT
  1319.            IMPLEMENTED YET)
  1320.  
  1321.    ›0m›1mSIZE›0m
  1322.  
  1323. ›0m›1mTemplate:›0m
  1324.  FROM/A,TO/A,SIZE/A,TYPE
  1325. ›0m›1mArguments:›0m
  1326.  FLOAT FROM,TO
  1327.    time interval
  1328.  SIZE
  1329.    size at the end of the interval
  1330.  KEYWORD TYPE [LINEAR]
  1331.    interpolation type (currently only linear)
  1332. ›0m›1mDescription:›0m
  1333.  Sets the size of the object. At time to, the actor will have this size.
  1334.  'TYPE' can be one of the following identifiers:
  1335.    LINEAR  the object moves on a straight line between the positions
  1336.    SPLINE  the object moves on a spline curve between the positions. (NOT
  1337.            IMPLEMENTED YET)
  1338.  
  1339. ›0m›1mWHAT IS AN ACTOR?›0m
  1340.  
  1341. The statement:
  1342.  
  1343. NEWACTOR name, position, alignment, size
  1344.  
  1345. defines a "virtual object" that can be associated with "real" objects,
  1346. including the Camera and  the Lights objects.  Position, alignment, and
  1347. size values are the initial values of an actor.
  1348.  
  1349. The object that is associated with a named actor behaves exactly like the
  1350. actor. When the actor is sized, rotated, or moved; the associted object is
  1351. sized, rotated, or moved accordingly.  It is as though the actor and the
  1352. object that is associated with it are connected by a rod.
  1353.  
  1354. While the coordinates of the object that is associated with an actor are
  1355. always defined in an absolute way in reference to the set world; its
  1356. movements - when associated with an actor - takes place with respect to
  1357. the coordinates of the actor.  The coordinates of the actor are defined in
  1358. the NEWACTOR statment and can have default values.
  1359.  
  1360. The position, alignment, and size values that follow the NEWACTOR statement
  1361. are the final values of an actor.  By defining time from and to values, a time
  1362. increment is defined by which the actor is resized, rotated, or moved from
  1363. the initial values to the final values.  By associating objects to an actor,
  1364. and rendering a picture at a particular time, or through a period of time,
  1365. animation and/or motion blur effects are achieved.
  1366.  
  1367. ›0m›1mAREXX-ERRORS›0m
  1368.  
  1369. These values are returned when something went wrong, you can get the
  1370. error string with the command ›3mGETERRORSTR›0m.
  1371.  
  1372. ›0m›1mApplication and parser errors›0m
  1373.  
  1374. Here are the errors returned from the command parser and the application
  1375. itself.
  1376.  
  1377. 100   Wrong screen resolution
  1378.       Both components of the screen resolution have to be higher than one.
  1379. 101   Not enough memory
  1380.       Allocation of memory failed.
  1381. 102   Limitations of demo version reached
  1382.       The demo version is limited to a resolution of 160x128.
  1383. 103   Unknown brush mapping type
  1384.       You specified a unknown mapping method for the ›3mBRUSH›0m command.
  1385. 104   Unknown brush wrapping method
  1386.       You specified a unknown wrapping method for the ›3mBRUSH›0m command.
  1387. 105   Invalid time intervall
  1388.       One component of a time intervall was negative or the beginning time
  1389.       was later than the end.
  1390. 106   Unknown interpolation method
  1391.       You specified a unknown interpolation method for the ›3mPOSITION›0m,
  1392.       ›3mALIGNMENT›0m or ›3mSIZE›0m command.
  1393. 107   No picture renderd
  1394.       There is no picture for ›3mSAVEPIC›0m to save because you renderd none
  1395.       or called ›3mCLEANUP›0m before.
  1396. 108   Can't open screen
  1397.       The ›3mDISPLAY›0m command was unable to open the screen
  1398.       (!!! THIS COMMAND ISN'T RELEASED IN THIS VERSION YET !!!).
  1399. 109   Can't open raystorm.library (Only one copy of RayStorm can run at a time)
  1400.       RayStorm failed to open raystorm.library
  1401. 110   Can't open intuition.library
  1402.       RayStorm failed to open intuition.library (at least version 37 is
  1403.       needed)
  1404. 111   Can't open window
  1405.       RayStorm failed to open the window.
  1406. 112   Can't open muimaster.library
  1407.       RayStorm failed to open muimaster.library (at least version 8 is
  1408.       needed)
  1409. 113   Invalid vector definition
  1410.       The specified vector has the wrong format (must be '<x,y,z>').
  1411. 114   Invalid color definition
  1412.       The specified color has the wrong format (must be '[r,g,b]').
  1413. 115   Invalid region definition
  1414.       The specified region is out of range.
  1415.  
  1416. ›0m›1mInternal errors›0m
  1417.  
  1418. This are errors of the renderer.
  1419.  
  1420.   1   Not enough memory
  1421.       Allocation of memory failed.
  1422.   2   Limitations of demo version reached
  1423.       The demo version is limited to a resolution of 160x128.
  1424.   3   Wrong screen resolution
  1425.       Both components of the screen resolution have to be higher than one.
  1426.   4   Error in triangle definition
  1427.       It's impossible to generate a triangle with the specified coordinates
  1428.       (see ›3mTRIANGLE›0m).
  1429.   5   The view and up directions are identical?
  1430.       You specified a view-up-vector for the ›3mCAMERA›0m command which is identical
  1431.       to the view direction.
  1432.   6   Not enough memory for screen buffer
  1433.       The allocation of the screen buffer failed.
  1434.   7   The backdrop picture has the wrong size
  1435.       The backdrop picture must have the same resolution as the with
  1436.       ›3mSETSCREEN›0m specified screen resolution.
  1437.   8   Can't open Imagine texture file
  1438.       RayStorm failed to open the specified Imagine texture file, check
  1439.       filename and path.
  1440.   9   Can't open brush file
  1441.       RayStorm failed to open the specified brush file, check
  1442.       filename and path.
  1443.  10   Error initializing Imagine texture
  1444.       An error occured as RayStorm tried to initialize a Imagine texture.
  1445.  11   Can't open picture
  1446.       RayStorm failed to open the specified picture file, check filename
  1447.       and path.
  1448.  12   Error reading picture
  1449.       An error occured while RayStorm read a picture file.
  1450.  13   Can't open picture type file ('modules/picture/types')
  1451.       RayStorm failed to open the typefile. The typefile is needed to
  1452.       identify the filetypes of the pictures. RayStorm was unable to open
  1453.       the file 'modules/picture/types'.
  1454.  14   Error reading picture type file
  1455.       An error occured while RayStorm read the picture type file, maybe the
  1456.       file is damaged.
  1457.  14   Unknown picture format
  1458.       RayStorm was unable to recognize the format of the picture file.
  1459.  16   An error occcured while invoking picture handler
  1460.       The used picture handler returned a error.
  1461.  17   Can't open object
  1462.       RayStorm failed to open the specified object file, check filename
  1463.       and path.
  1464.  18   Error reading object
  1465.       An error occured while RayStorm read a object file.
  1466.  19   Can't open object type file ('modules/object/types')
  1467.       RayStorm failed to open the typefile. The typefile is needed to
  1468.       identify the filetypes of the objects. RayStorm was unable to open
  1469.       the file 'modules/object/types'.
  1470.  20   Error reading object type file
  1471.       An error occured while RayStorm read the object type file, maybe the
  1472.       file is damaged.
  1473.  21   Unknown object format
  1474.       RayStorm was unable to recognize the format of the object file.
  1475.  22   An error occcured while invoking object handler
  1476.       The used object handler returned a error.
  1477.  23   Actor not defined
  1478.       The specified actor name does not exist.
  1479.  24   Surface not defined
  1480.       The specified surface name does not exist.
  1481.  25   Depth of octree too big (max. 6)
  1482.       The octree depth is limited to a depth of 6.
  1483.  26   Antialiasing value too big (max. 8)
  1484.       The value of the ›3mANTIALIAS›0m command is limited to 8.
  1485.  27   Invalid time intervall
  1486.       One component of a time intervall was negative or the beginning time
  1487.       was later than the end.
  1488.  28   No picture renderd
  1489.       There is no picture for ›3mSAVEPIC›0m to save because you renderd none
  1490.       or called ›3mCLEANUP›0m before.
  1491.  29   Distribution value too big (max. 8)
  1492.       The value of the ›3mDISTRIB›0m command is limited to 8.
  1493.  30   Wrong error number
  1494.       The error number for ›3mGETERRORSTR›0m is out of range.
  1495.  31   Unknown Parameter
  1496.       A RSI-function was called with an unknown parameter (should nerver occur).
  1497.  
  1498. ›0m›1mEXAMPLES›0m
  1499.  
  1500. We have included several demos in the directories 'arexx' and 'examples'
  1501. to show how to use RayStorm.
  1502.  
  1503. In the 'arexx' directory are examples scripts which show the usage of
  1504. RayStorm with ARexx. Start them simply by typing 'rx ???.ray' in a shell
  1505. (???.ray is the name of the script).
  1506.  
  1507. ›0m›1mAttrtest.ray›0m
  1508. Four spheres with different attributes.
  1509.  
  1510. ›0m›1mAttrtest1.ray›0m
  1511. Several examples for attributes.
  1512.  
  1513. ›0m›1mBackdrop.ray›0m
  1514. Demonstrates usage of backdrop picture.
  1515.  
  1516. ›0m›1mBounce.ray›0m
  1517. ›3mTutorial›0m.
  1518.  
  1519. ›0m›1mBrush.ray›0m
  1520. Demonstrates usage of brush mapping.
  1521.  
  1522. ›0m›1mBump.ray›0m
  1523. Test of bump texture.
  1524.  
  1525. ›0m›1mChecker.ray›0m
  1526. Test of checker texture.
  1527.  
  1528. ›0m›1mChess.ray›0m
  1529. Chess scene.
  1530.  
  1531. ›0m›1mCoin.ray›0m
  1532. Jumping coin with motion blur.
  1533.  
  1534. ›0m›1mDof.ray›0m
  1535. Test of depth of field.
  1536.  
  1537. ›0m›1mDolphins.ray›0m
  1538. Three dolphins with light effects.
  1539.  
  1540. ›0m›1mEight.ray›0m
  1541. Billard scene.
  1542.  
  1543. ›0m›1mFog.ray›0m
  1544. Fog demonstration.
  1545.  
  1546. ›0m›1mFog1.ray›0m
  1547. Fog demonstration.
  1548.  
  1549. ›0m›1mIm_texture.ray›0m
  1550. Example for usage of Imagine textures.
  1551.  
  1552. ›0m›1mLogo.ray›0m
  1553. Renders the RayStorm logo.
  1554.  
  1555. ›0m›1mMarble.ray›0m
  1556. Test of marble texture.
  1557.  
  1558. ›0m›1mRandomsphere.ray›0m
  1559. Randomly colored sphere.
  1560.  
  1561. ›0m›1mSimple.ray›0m
  1562. ›3mTutorial›0m.
  1563.  
  1564. ›0m›1mSun.ray›0m
  1565. Sun behind a Planet with simulated lens flares.
  1566.  
  1567. ›0m›1mSupersample.ray›0m
  1568. Demonstrates adaptive supersampling.
  1569.  
  1570. ›0m›1mTextures.ray›0m
  1571. Demonstrates textures.
  1572.  
  1573. ›0m›1mWood.ray›0m
  1574. Test of wood texture.
  1575.  
  1576. In the 'examples' directory are C-programs which show the usage of
  1577. RayStorm directly with a program. They can only be run from a shell.
  1578. These programs are producing a couple of pictures no animation, which must
  1579. be glued together with a utility like MainActor.
  1580.  
  1581. ›0m›1mSphanim›0m
  1582.  
  1583. Animation of several spheres which jump over a checker board. Camera
  1584. follows them.
  1585.  
  1586. ›0m›1mWorldanim›0m
  1587.  
  1588. Rotating world.
  1589.  
  1590. ›0m›1mTUTORIALS›0m
  1591.  
  1592. If you use RayStorm for the first time, then it would be a good idea to do
  1593. the following tutorials:
  1594.  
  1595. ›3mSimple scene ›0m
  1596. ›3mBouncing ball›0m
  1597. ›3mMotion blur  ›0m
  1598.  
  1599. ›0m›1mTutorial: Simple scene›0m
  1600.  
  1601. Now we will create a very famous scene. A sphere over a checkerboard! Ok, it
  1602. may be boring, but it's good for the absolute beginner to get an
  1603. impression of building a scene.
  1604.  
  1605. Here we go:
  1606.  
  1607. 1. In the  drawer 'ARexx' of the RayStorm directory there is a file named
  1608.    'default.ray'. This is a default form for RayStorm ARexx scripts. You can
  1609.    use this form to write your own scripts.
  1610.    We'll use this file as a default for our animation script. Copy this file
  1611.    to the file 'simple.ray'. After this load the file 'simple.ray' to your
  1612.    favorite text editor (e.g GoldEd or CygnusEd).
  1613.  
  1614. 2. To view the scene, we need a camera. Insert after the line 'address
  1615.    RAYSTORM' the line:
  1616.  
  1617. ›0m›3m   '›3mSETCAMERA›0m <6,1.5,-1.5> <0,0,0> <0,1,0>'›0m
  1618.  
  1619.    This sets the camera to position <6,1.5,-1.5>. The camera points to
  1620.    <0,0,0> and the view-up vector is <0,1,0>. Note that you don't have to
  1621.    specify every single parameter. Every command has default values. Refer
  1622.    to the description of a command to find out the default values.
  1623.  
  1624. 3. Nothing can be seen without a lightsource.
  1625.    Go to the next line and type:
  1626.  
  1627. ›0m›3m   '›3mPOINTLIGHT›0m <0,50,0> [255,255,255] SHADOW'›0m
  1628.  
  1629.    The sphere is illuminated from above with white light.
  1630.  
  1631. 4. Before placing the objects in the scene, you have to define their
  1632.    surfaces.
  1633.    Insert this line:
  1634.  
  1635. ›0m›3m   '›3mNEWSURFACE›0m planesurf'›0m
  1636.  
  1637.    This creates a surface with name planesurf. The plane has a checkered
  1638.    surface, so insert:
  1639.  
  1640. ›0m›3m   '›3mIMTEXTURE›0m /textures/checker.itx <0.1,0.1,0.1> <0,0,0> <2,2,2>'›0m
  1641.  
  1642. 5. That was the plane texture. Let 's go over to sphere texture.
  1643.    Add:
  1644.  
  1645. ›0m›3m   '›3mNEWSURFACE›0m spheresurf'›0m
  1646.  
  1647.    The sphere has a mirrored surface. To simulate a perfect mirror, type
  1648.  
  1649. ›0m›3m   '›3mREFLECT›0m [255,255,255]'›0m
  1650.  
  1651. 6. Now we can add the objects to the scene:
  1652.  
  1653. ›0m›3m   '›3mSPHERE›0m spheresurf <0,0.5,0> 1'›0m
  1654.  
  1655.    This creates a sphere on position <0,0.5,0> and radius 1.
  1656.    Add the plane:
  1657.  
  1658. ›0m›3m   '›3mPLANE›0m planesurf'›0m
  1659.  
  1660.    The default values for the position and the normal vector fit to our
  1661.    scene, so we can take them over.
  1662.  
  1663. 7. Let's make an end to the definitions and render the scene!
  1664.    Type:
  1665.  
  1666. ›0m›3m   '›3mSTARTRENDER›0m'›0m
  1667.  
  1668. 8. Finally we may not forget to save the picture, so add:
  1669.  
  1670. ›0m›3m   '›3mSAVEPIC›0m simple.iff'›0m
  1671.  
  1672.    which will save the renderd picture in the current directory as a
  1673.    IFF-ILBM file.
  1674.    The last step is to free all the memory with the command 'CLEANUP'. Add:
  1675.  
  1676. ›0m›3m   ›3mCLEANUP›0m'›0m
  1677.  
  1678. 9. Start the script from a shell-window with the sequence 'rx simple.ray'.
  1679.    RayStorm will now generate your picture. When RayStorm finished the work
  1680.    start your favourite viewer-program, load the file and have a look at
  1681.    it.
  1682.    Looks very monochrome!!
  1683.    To make the world colorful, we make a red checker and set the sky to
  1684.    blue. A blue sky can be done by setting the world's background color.
  1685. 10. Before 'SETCAMERA' insert:
  1686.  
  1687. ›0m›3m   '›3mSETWORLD›0m [30,30,255]'›0m
  1688.  
  1689.    Add
  1690.  
  1691. ›0m›3m   '›3mDIFFUSE›0m [155,0,0]'›0m
  1692.  
  1693.    to the surface planesurf (this defines one checker color), the other one
  1694.    must be set in the 'IMTEXTURE' command, so change it to
  1695.  
  1696. ›0m›3m   '›3mIMTEXTURE›0m /textures/checker.itx <0.1,0.1,0.1> <0,0,0> <2,2,2> 255 0 0'›0m
  1697.  
  1698.    (Note that '255 0 0' describes a color, but is not embedded in < >,
  1699.    because the checker color belongs to the texture parameters which are
  1700.    all floats.)
  1701.  
  1702. 11. Render the scene once again, and view it.
  1703.  
  1704. That's the end of the tutorial! Make some changes to the scene file and
  1705. play around with the parameters to see their effects.
  1706.  
  1707. ›0m›1mTutorial: Bouncing ball›0m
  1708.  
  1709. The goal of this tutorial is to show you how to generate little animations.
  1710. At the end of this tutorial you'll have a animation where the earth rotates
  1711. and bounces on a rotating plane with a white checker texture on the top and
  1712. a red checker on the bottom. If you have a fast computer you can also
  1713. generate the animation with motion blur.
  1714.  
  1715. O.k. here we go:
  1716.  
  1717. 1. In the  drawer 'ARexx' of the RayStorm directory there is a file named
  1718.    'default.ray'. This is a default form for RayStorm ARexx scripts. You can
  1719.    use this form to write your own scripts.
  1720.    We will use this file as a default for our animation script. Copy this file
  1721.    to the file 'bounce.ray'. After this load the file 'bounce.ray' to your
  1722.    favorite text editor (e.g GoldEd or CygnusEd).
  1723.  
  1724. 2. First we define some values: the acceleration of the ball and the amount
  1725.    of frames to generate.
  1726.    RayStorm has three commands to set the paths where it searchs the files
  1727.    it needs. We use a brush for the surface of the ball and a texture for
  1728.    the surface of the ground.
  1729.    To do this we have to insert after the command 'ADDRESS RAYSTORM' the
  1730.    lines:
  1731.  
  1732. ›0m›3m   g = .2
  1733.    frames = 17
  1734.  
  1735.    '›3mBRUSHPATH›0m /brushes'
  1736.    '›3mTEXTUREPATH›0m /textures'›0m
  1737.  
  1738.    It's the same if you write the commands in upper case or lower case.
  1739.    But it's important to enclose all commans in quotes because ARexx tries
  1740.    to interpret the line before it sends it. It may happen that the line is
  1741.    changed and RayStorm don't do the things you want.
  1742.  
  1743. 3. Next we set the screen resolution. For the first experiments we choose
  1744.    a low resolution of 160x128 pixels. Insert the line:
  1745.  
  1746. ›0m›3m   '›3mSETSCREEN›0m 160 128'›0m
  1747.  
  1748. 4. Now we set the camera parameters. The first three values determine the
  1749.    position of the camera. We want to place it so that we can see the ball
  1750.    all over the time. The next values set the viewpoint of the camera, this
  1751.    is the point the camera aims to. The next values determine the view up
  1752.    vector. And the last two values determine the field of view. To get a
  1753.    pixel aspect of 1:1 we have to set them to 25 and 20 degree.
  1754.  
  1755. ›0m›3m   '›3mSETCAMERA›0m <0,10,40> <0,5,0> <0,1,0> 25 20'›0m
  1756.  
  1757. 5. We want to have a bright blue background for our animation. The
  1758.    background and the global ambient color is set with the 'SETWORLD'
  1759.    command. We want to set the ambient color to a dark gray, if this color
  1760.    is to bright the scene will look washed out and the objects appear flat.
  1761.    Insert the line:
  1762.  
  1763. ›0m   '›3mSETWORLD›0m [10,30,200] [10,10,10]'›0m
  1764.  
  1765. 6. The illumination is an important part of a scene. We want to place a
  1766.    pointlight near the camera. Add the line:
  1767.  
  1768. ›0m   '›3mPOINTLIGHT›0m <5,10,50>'›0m›3m
  1769.  
  1770. 7. Now we define the actor for the plane. We want to rotate it around the
  1771.    Z-axis. Insert the lines:
  1772.  
  1773. ›0m›3m   '›3mNEWACTOR›0m groundactor'
  1774.    '›3mALIGNMENT›0m 0 ' frames+2 ' <0,0,360>'›0m
  1775.  
  1776. 7. Now we define the surface for the plane and the plane itself. We make it
  1777.    a little reflective and apply a checker texture. The surface 'groundtop'
  1778.    is for the top of the plane and the surface 'groundbottom' is for the
  1779.    bottom of the surface. The plane itself consits of four triangles. Two
  1780.    fo the top and two for the bottom. Insert the lines:
  1781.  
  1782. ›0m›3m   '›3mNEWSURFACE›0m groundtop'
  1783.    '›3mDIFFUSE›0m [255,255,255]'
  1784.    '›3mSPECULAR›0m [0,0,0]'
  1785.    '›3mREFLECT›0m [50,50,50]'
  1786.    '›3mIMTEXTURE›0m checker.itx <0,-1,0> <0,0,0> <10,10,10> ACTOR groundactor'
  1787.  
  1788.    '›3mNEWSURFACE›0m groundbottom'
  1789.    '›3mDIFFUSE›0m [255,0,0]'
  1790.    '›3mSPECULAR›0m [0,0,0]'
  1791.    '›3mREFLECT›0m [50,50,50]'
  1792.    '›3mIMTEXTURE›0m checker.itx <0,-1,0> <0,0,0> <1.5,1.5,1.5> ACTOR groundactor'
  1793.  
  1794.    '›3mTRIANGLE›0m groundtop <-2,0,-2> <2,0,-2> <2,0,2> ACTOR groundactor'
  1795.    '›3mTRIANGLE›0m groundtop <-2,0,-2> <-2,0,2> <2,0,2> ACTOR groundactor'
  1796.    '›3mTRIANGLE›0m groundbottom <-2,-.01,-2> <2,-.01,-2> <2,-.01,2> ACTOR groundactor'
  1797.    '›3mTRIANGLE›0m groundbottom <-2,-.01,-2> <-2,-.01,2> <2,-.01,2> ACTOR groundactor'›0m
  1798.  
  1799. 8. Next we define the motion of the ball. It starts at a height of 10 and
  1800.    accelerates until it bounces on the plane, changes it's direction and
  1801.    the motions ends as the ball is back at he start point. Additional the
  1802.    ball rotates around the Y-axis. Add the following sequence to your script:
  1803.  
  1804. ›0m›3m   speed = -g
  1805.    pos = 10
  1806.    '›3mNEWACTOR›0m ballactor <0,'pos',0>'
  1807.    do i=0 to frames
  1808.      '›3mPOSITION›0m ' i i+1 '<0,'pos',0>'
  1809.      pos = pos+speed
  1810.      if pos<=1 & speed<0 then
  1811.        speed = -speed
  1812.      else
  1813.        speed = speed-g
  1814.    end
  1815.    '›3mALIGNMENT›0m 0 ' frames+2 ' <0,360,0>'›0m
  1816.  
  1817. 9. Now we define the surface for the ball and the ball itself. The only thing
  1818.    we must do is to map a earth styled brush map to a sphere. To reach this
  1819.    goal the position of the brush must be set to the middle of the sphere
  1820.    and the size must be small enough to be completely inside the sphere.
  1821.     This are the lines to define the ball:
  1822.  
  1823. ›0m›3m   '›3mNEWSURFACE›0m ball'
  1824.    '›3mBRUSH›0m earth.iff COLOR WRAPXY <0,10,0> <0,0,0> <.1,.1,.1> ACTOR ballactor'
  1825.  
  1826.    '›3mSPHERE›0m ball <0,10,0> 1 ACTOR ballactor'›0m
  1827.  
  1828. 10. If your computer is fast enough you can insert the follwing lines:
  1829.  
  1830. ›0m›3m   '›3mANTIALIAS›0m 2'
  1831.    '›3mDISTRIB›0m 2'›0m
  1832.  
  1833.    'ANTIALIAS' improves the quality of the picture; 2 or 3 are normal values,
  1834.    higher values don't improve the quality significant.
  1835.    A value higher than one for 'DISTRIB' switches {"motion blur" link Motion Blur} on.
  1836.  
  1837. 11. At this the we have finished the definitions and now can render the single
  1838.    frames. If youn want the reflections of the ball on the plane you have
  1839.    to delete the keyword 'QUICK', because RayStorm renders no reflections in
  1840.    quick mode. The frame time is set with 'FROM' and 'TO'. We save the frames
  1841.    as IFF-ILBM pictures with the names 'bounce0001.iff' ... 'bounceXXXX.iff'.
  1842.    The last step is to free all the memory with the command 'CLEANUP'. Add
  1843.    these lines:
  1844.  
  1845. ›0m›3m   do i=0 to frames
  1846.       '›3mSTARTRENDER›0m QUICK FROM 'i' TO 'i+1
  1847.       '›3mSAVEPIC›0m bounce' || RIGHT(i,4,0) || '.iff'
  1848.    end
  1849.  
  1850.    '›3mCLEANUP›0m'›0m
  1851.  
  1852. 12. Start the script from a shell-window with the sequence 'rx bounce.ray'.
  1853.    RayStorm will now generate your frames. When RayStorm finished the work
  1854.    you must glue the pictures together to get the animation.
  1855.  
  1856. That's all. Have fun!
  1857.  
  1858. ›0m›1mTutorial: Motion blur›0m
  1859.  
  1860. In this tutorial we show you how to make animations and how to use motion
  1861. blur.
  1862. To animate objects we need ACTORs. An ACTOR can be seen as a virtual object
  1863. which can have a certain position/alignment/size at a certain time. ACTORs can
  1864. be used for keyframe animation by giving control points which RayStorm can
  1865. interpolate (only linear for now.  Spline interpolations will be implemented
  1866. later).
  1867. You can assign an ACTOR to one or more real objects. An object with an actor
  1868. assigned to it will follow all actions the actor does. Let's take the sphere
  1869. from the second tutorial and move it to direction of the camera.
  1870. Type following:
  1871.  
  1872. ›0m›3m'›3mSETCAMERA›0m <6,1.5,-1.5> <0,0,0><0,1,0>'
  1873. '›3mPOINTLIGHT›0m <30,50,30> [255,255,255] SHADOW'›0m
  1874.  
  1875. you can add POSITION, ALIGNMENT and SIZE commands after NEWACTOR
  1876. (similar to the surface commands after NEWSURFACE)
  1877.  
  1878. ›0m›3m'›3mNEWACTOR›0m actor'
  1879. '›3mPOSITION›0m 0 1 <3,0,0.4>'
  1880.  
  1881. '›3mNEWSURFACE›0m planesurf'
  1882. '›3mDIFFUSE›0m <255,30,30>'
  1883. '›3mIMTEXTURE›0m "checker.itx" <0.1,0.1,0.1> <0,0,0> <2,2,2> 155 25 0'
  1884.  
  1885. '›3mNEWSURFACE›0m spheresurf'
  1886. '›3mREFLECT›0m <255,255,255>'
  1887.  
  1888. '›3mSPHERE›0m spheresurf <0,1,0> 0.7 actor'
  1889. '›3mPLANE›0m planesurf'›0m
  1890.  
  1891. You can make an animation by a series of STARTRENDER/SAVEPIC combinations. Our
  1892. little movie shall consist of 6 frames, so we will subdivide our time intervall
  1893. (1 unit) and make a photo every 0.2 time units. The STARTRENDER command has the
  1894. option to render a picture within a certain time intervall. That can be
  1895. compared with the shutter time of a real camera. The camera of RayStorm records
  1896. all movements of the objects in the scene within that time intervall which
  1897. results in a blurred scene. At the beginning we do no motion blur, so we set
  1898. the start and the end time to the same value. (Which means no shutter time).
  1899.  
  1900. Add this code and execute it:
  1901.  
  1902. ›0m›3mdo i=0 to 1 step 0.2
  1903.  '›3mSTARTRENDER›0m QUICK FROM 'i' TO 'i
  1904.  '›3mSAVEPIC›0m sphere' || RIGHT(i*5,4,0) || '.iff'
  1905. end
  1906.  
  1907. '›3mCLEANUP›0m'›0m
  1908.  
  1909. You can make a movie out of it using an animator program such as MainActor.
  1910. Now we introduce one of the advanced features of RayStorm: Motion Blur
  1911. Replace the commands above by the following lines:
  1912.  
  1913. ›0m›3m/* when doing motion blur you *MUST* add the distrib command +/
  1914.  
  1915. '›3mDISTRIB›0m 3'
  1916.  
  1917. /* shutter time is 0.2 */
  1918.  
  1919. do i=0 to 0.8 step 0.2
  1920.  '›3mSTARTRENDER›0m QUICK FROM 'i' TO 'i+0.2
  1921.  '›3mSAVEPIC›0m sphere' || RIGHT(i*5,4,0) || '.iff'
  1922. end
  1923.  
  1924. '›3mCLEANUP›0m'›0m
  1925.  
  1926. For each frame, the camera opens the shutter 0.2 time units long and records
  1927. what's happening. As you can see, an animation with motion blur gives a better
  1928. visual effect.
  1929. Again feel free to change the parameters.
  1930.  
  1931. ›0m›1mTips&Tricks›0m
  1932.  
  1933. - The commands '›3mTEXTUREPATH›0m', '›3mOBJECTPATH›0m' and '›3mBRUSHPATH›0m' are relative
  1934.   to the directory RayStorm is started from.
  1935.  
  1936. - RayStorm renders faster if you don't use planes, because intersections
  1937.   with planes cannot be calculated with the octree (helpfull in scenes with
  1938.   motion blur or soft shadows).
  1939.  
  1940. - If RayStorm crashes with scenes with reflections and transparence, try
  1941.   to start RayStorm with a larger stack (e.g. 8192 Bytes).
  1942.  
  1943. ›0m›1mTEXTURES›0m
  1944.  
  1945. Textures are mathematically generated patterns which can be applied to the
  1946. surface of an object.
  1947. There are several textures in the directory 'textures'.
  1948.  
  1949.    ›3m Bump    ›0m
  1950.    ›3m Checker ›0m
  1951.    ›3m Linear  ›0m
  1952.    ›3m Marble  ›0m
  1953.    ›3m Radial  ›0m
  1954.    ›3m Stars   ›0m
  1955.    ›3m Wood    ›0m
  1956.  
  1957. ›0m›1mBUMP›0m
  1958.  
  1959. This texture applies bumps to the surface.
  1960. Size of texture determines size of the bumps.
  1961.  
  1962. ›0m›1mParameters:›0m
  1963.  
  1964. 1: X bump size
  1965. 2: Y bump size
  1966. 3: Z bump size
  1967. set the 'depth' of the bumps.
  1968.  
  1969. Example:
  1970. sphere with radius 1
  1971.  ›0m›3mIMTEXTURE bump.itx <0,0,0> <0,0,0> <.3,.3,.3> 1 1 1›0m
  1972. ›3mPicture›0m
  1973.  
  1974. ›0m›1mCHECKER›0m
  1975.  
  1976. This texture applies thw ell known checker pattern to the surface.
  1977. ›0m›1mAttention!
  1978. If you apply a checker texture to a plane, the plane may not be at the same
  1979. position on which the checker changes its color. Otherwise you get a noisy
  1980. texture due to rounding errors.›0m
  1981.  
  1982. ›0m›1mParameters:›0m
  1983.  
  1984. 1: Color Red
  1985. 2: Color Green
  1986. 3: Color Blue
  1987. Color of the checkers, other color is taken from object.
  1988.  
  1989. 4: Reflect Red
  1990. 5: Reflect Green
  1991. 6: Reflect Blue
  1992. Reflect color of the checkers.
  1993.  
  1994. 7: Filter Red
  1995. 8: Filter Green
  1996. 9: Filter Blue
  1997. Filter color of the checkers.
  1998.  
  1999. ›0m›1mExample:›0m
  2000.  ›0m›3mIMTEXTURE "checker.itx" <0,0.1,0> <0,0,0> <2,2,2> 255 0 0›0m
  2001. ›3mPicture›0m
  2002.  
  2003. ›0m›1mLINEAR›0m
  2004.  
  2005. This texture varies the color of the object in the y-direction of the
  2006. texture.
  2007.  
  2008. ›0m›1mParameters:›0m
  2009.  
  2010. 1: Color Red
  2011. 2: Color Green
  2012. 3: Color Blue
  2013. color to interpolate to.
  2014.  
  2015. 4: Reflect Red
  2016. 5: Reflect Green
  2017. 6: Reflect Blue
  2018. reflection to interpolate to.
  2019.  
  2020. 7: Filter Red
  2021. 8: Filter Green
  2022. 9: Filter Blue
  2023. filter to interpolate to.
  2024.  
  2025. ›0m›1mExample:›0m
  2026.  ›0m›3mIMTEXTURE "linear.itx" <0,0.1,0> <0,0,0> <2,2,2> 0 0 255›0m
  2027. ›3mPicture›0m
  2028.  
  2029. ›0m›1mWOOD›0m
  2030.  
  2031. This texture applies a wood like texture to the surface.
  2032. Size of texture determines size of wood.
  2033.  
  2034. ›0m›1mParameters:›0m
  2035.  
  2036. 1: Color Red
  2037. 2: Color Green
  2038. 3: Color Blue
  2039. Color. Other color is taken from object.
  2040.  
  2041. 4: Reflect Red
  2042. 5: Reflect Green
  2043. 6: Reflect Blue
  2044. Reflection color.
  2045.  
  2046. 7: Filter Red
  2047. 8: Filter Green
  2048. 9: Filter Blue
  2049. Filter color.
  2050.  
  2051. 10: Octave
  2052. The higher the octave the noisier are the wood rings.
  2053.  
  2054. 11: Frequency
  2055. The higher the frequency the smaller the wood rings.
  2056.  
  2057. ›0m›1mExample:›0m
  2058. cube with size 2
  2059.  ›0m›3mIMTEXTURE wood.itx <0,0,0> <0,0,0> <1,1,1> 255 255 50 0 0 0 0 0 0 2 4›0m
  2060. ›3mPicture›0m
  2061.  
  2062. ›0m›1mMARBLE›0m
  2063.  
  2064. This texture applies a marble like texture to the surface.
  2065. Size of texture determines size of bumps.
  2066.  
  2067. ›0m›1mParameters:›0m
  2068.  
  2069. 1: Color Red
  2070. 2: Color Green
  2071. 3: Color Blue
  2072. Color. Other color is taken from object.
  2073.  
  2074. 4: Reflect Red
  2075. 5: Reflect Green
  2076. 6: Reflect Blue
  2077. Reflection color.
  2078.  
  2079. 7: Filter Red
  2080. 8: Filter Green
  2081. 9: Filter Blue
  2082. Filter color.
  2083.  
  2084. 10: Octave
  2085. The higher the octave the noisier is the texture.
  2086.  
  2087. ›0m›1mExample:›0m
  2088. cube with size 2
  2089.  ›0m›3mIMTEXTURE marble.itx <0,0,0> <0,0,0> <.5,.5,.5> 150 50 50 0 0 0 0 0 0 7›0m
  2090. ›3mPicture›0m
  2091.  
  2092. ›0m›1mRADIAL›0m
  2093.  
  2094. This texture varies the color of the object radial around the texture axis.
  2095.  
  2096. ›0m›1mParameters:›0m
  2097.  
  2098. 1: Start radius
  2099. Interploation start radius.
  2100.  
  2101. 2: End radius
  2102. Interploation end radius.
  2103.  
  2104. 3: Color Red
  2105. 4: Color Green
  2106. 5: Color Blue
  2107. Color to interpolate to.
  2108.  
  2109. 6: Reflect Red
  2110. 7: Reflect Green
  2111. 8: Reflect Blue
  2112. Reflection to interpolate to.
  2113.  
  2114. 9: Filter Red
  2115. 10: Filter Green
  2116. 11: Filter Blue
  2117. Filter to interpolate to.
  2118.  
  2119. ›0m›1mExample:›0m
  2120.  ›0m›3mIMTEXTURE "radial.itx" <0,0,0> <0,0,0> <1,1,1> 1 2 255 0 0›0m
  2121. ›3mPicture›0m
  2122.  
  2123. ›0m›1mSTARS›0m
  2124.  
  2125. This texture applies randomly stars to the surface. Cannot be used in
  2126. animations!
  2127.  
  2128. ›0m›1mParameters:›0m
  2129.  
  2130. 1: Color Red
  2131. 2: Color Green
  2132. 3: Color Blue
  2133. Color of the stars.
  2134.  
  2135. 4: Density
  2136. Star density. The higher the more stars (0. - 1.).
  2137.  
  2138. ›0m›1mExample:›0m
  2139.  ›0m›3mIMTEXTURE "stars.itx" <0,0,0> <0,0,0> <1,1,1> 255 255 255 0.1›0m
  2140. ›3mPicture›0m
  2141.  
  2142. ›0m›1mKNOWN BUGS›0m
  2143.  
  2144. none
  2145.  
  2146. ›0m›1mDISCLAIMER›0m
  2147.  
  2148. THERE IS NO WARRANTY FOR THIS PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE
  2149. LAW.  EXCEPT WHERE OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDER AND/OR
  2150. OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
  2151. EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  2152. WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE
  2153. ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
  2154. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
  2155. SERVICING, REPAIR OR CORRECTION.
  2156.  
  2157. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
  2158. ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAM
  2159. AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
  2160. SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
  2161. INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
  2162. DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
  2163. OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
  2164. SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  2165. DAMAGES.
  2166.  
  2167. ›0m›1mCOPYRIGHT›0m
  2168.  
  2169. RayStorm and RayStorm Demo are Copyright 1995 by Andreas Heumann and
  2170. Mike Hesser.
  2171. All Rights Reserved. It is released under the concept of `Shareware'.
  2172.  
  2173. The archive of the RayStorm Demo may only be distributed in unmodified
  2174. form.  No files may be added, changed or removed. You may not charge for
  2175. this archive, other than the cost of the media and duplication fees.
  2176. Distribution is allowed in all forms, such as BB systems, floppy or
  2177. compact disks, and ftp sites.
  2178.  
  2179. ›0m›1mCREDITS›0m
  2180.  
  2181. We want to thank the following persons:
  2182.  
  2183. - Bernhard Moench - chairman of Plasma Pictures (a great Amiga club)
  2184.  
  2185.   Address:
  2186.  
  2187.   Plasma Pictures
  2188.   Reality and Imagination!
  2189.  
  2190.   Bernhard Moench
  2191.   Regensburger Strasse 28c
  2192.  
  2193.   10777 Berlin
  2194.   GERMANY
  2195.  
  2196. - Stephan Dorenkamp & Marcus Ritter - for testing
  2197.  
  2198. - Maan Hamze - for overworking our help file, testing, hundreds of
  2199.   suggestions and bugreports...
  2200.   ... and many many E-Mails
  2201.  
  2202. ›0m›1mREGISTER›0m
  2203.  
  2204. If you like RayStorm use the registration programm to register.
  2205. Fill out the registration form and press the Print button.
  2206. If the printer is installed correctly, the registration is printed out.
  2207. You can get information about the current agreements by pressing the Info
  2208. button.
  2209.  
  2210. ›0m›1mAUTHORS›0m
  2211.  
  2212. For bug reports, comments, suggestions ... you can contact us at the
  2213. following addresses (E-mail prefered).
  2214.  
  2215.    Amiga-version:
  2216.  
  2217.    Andreas Heumann
  2218.  
  2219.    E-mail:  calvin@sol.wohnheim.uni-ulm.de (or heumann@hugo.rz.fh-ulm.de)
  2220.    S-mail:  Heilmeyersteige 105
  2221.             89075 Ulm
  2222.             Germany
  2223.  
  2224.     PC-version:
  2225.  
  2226.    Mike Hesser
  2227.  
  2228.    E-mail:  calvin@sol.wohnheim.uni-ulm.de
  2229.    S-mail:  Heilmeyersteige 105
  2230.             89075 Ulm
  2231.             Germany
  2232.  
  2233. ›0m›1mHISTORY›0m
  2234.  
  2235. version 1.0 (09-July-95)
  2236. - first release.
  2237.  
  2238. version 1.01 (15-August-95)
  2239. - added soft shadows
  2240. - added random jitter
  2241. - added brush repeat and mirror
  2242.  
  2243. version 1.02 (16-August-95)
  2244. - bugfix: altitude mapping -> black object: fixed
  2245. - bugfix: loading of TDDD-objects with brushes crashed: fixed
  2246. - added backdrop picture
  2247. - added BRIGHT-flags for surface
  2248. - added fog
  2249. - deleted TRANSATTU
  2250.  
  2251. version 1.03 (17-August-95)
  2252. - bugfix: sphere intersection test: fixed
  2253.  
  2254. version 1.04 (21-August-95)
  2255. - added global fog
  2256.  
  2257. version 1.05 (28-August-95)
  2258. - added animation commands
  2259.  
  2260. version 1.06 (01-September-95)
  2261. - added motion blur
  2262.  
  2263. version 1.07 (10-September-95)
  2264. - added specular brush mapping
  2265.  
  2266. version 1.08 (11-September-95)
  2267. - added rendering box
  2268.  
  2269. version 1.081 (08-October-95)
  2270. - added listview for history
  2271. - added global reflection map
  2272. - changed error messages
  2273.  
  2274. version 1.082 (11-October-95)
  2275. - improved memory management for Imagine objects
  2276.  
  2277. version 1.083 (12-October-95)
  2278. - changed spotlight direction to lookpoint and added actor for lookpoint
  2279. - new form for vectors '<x,y,z>'
  2280. - new form for colors '[r,g,b]'
  2281.  
  2282. version 1.1 (18-October-95)
  2283. - next offical release
  2284.  
  2285. version 1.11 (19-October-95)
  2286. - bugfix: Imagine fog objects are now loaded properly
  2287. - added parameter check for field rendering
  2288.  
  2289. version 1.12 (21-October-95)
  2290. - speedup of motion blur
  2291.  
  2292. version 1.13 (01-November-95)
  2293. - now more than one path with PATH-commands possible
  2294. - bugfix: spotlight look point changed camera view point
  2295. - added soft interpolation of colors for brushmapping
  2296. - bugfix: objects behind light sources casted shadows
  2297.  
  2298. version 1.14 (03-November-95)
  2299. - changed default gaussian filter width from 1.8 to 1.3
  2300. - bugfix: problem with global fog
  2301. - plane can now be animated
  2302. - changed axis position in flat brush mapping
  2303. - added 'Time spend' and 'Time left'
  2304.  
  2305. version 1.15 (28-November-95)
  2306. - added PNG- and ILBM-modules
  2307. - added radial texture
  2308.  
  2309. version 1.16 (09-January-96)
  2310. - bugfix in PNG-module: had problems with palette pictures
  2311. - bugfix motion blur: had a problem with voxel calculations
  2312. - bugfix motion blur: had no motion blur in scenes with planes
  2313. - added TGA-module
  2314. - added 'SOFTSHADOW' to 'DISTRIB'
  2315. - optimized octree (up to 10% faster)
  2316. - added 'FALLOFF' for 'POINTLIGHT' and 'SPOTLIGHT'
  2317. - bugfix can now load plane
  2318. - bugfix can now load multiple planes or perfect spheres
  2319.  
  2320. version 1.17 (18-February-96)
  2321. - object loading is now done in modules
  2322. - added 3DS module
  2323. - bugfix in TDDD-module: hardness is now used to set REFEXP
  2324. - brushes and textures are no applied to surfaces which lie
  2325.   between the light source and the illuminated surface
  2326. - bugfix antialiasing: there where some bright pixel trash in the picture
  2327.   if antialiasing with fog was used
  2328. - rewrote bump, wood and marble textures
  2329. - global reflections map is now applied in 'QUICK' mode too
  2330.  
  2331. version 1.2 (29-February-96)
  2332. - bugfix 'ANTIALIAS' command: parameter CONTRIB produced error 30
  2333. - bugfix: last line of picture has been always black
  2334. - bugfix: had problems with Imagine 4.0 TDDD objects
  2335.  
  2336. version 1.21 (25-March-96)
  2337. - TDDD objects are now rotated and scaled relative to axis of first object
  2338. - bugfix: since 1.2 shadows in motion blur scenes were calculated false
  2339. - bugfix: in some cases there were vertical and horizontal stripes in
  2340.   rendered pictures
  2341. - bugfix: triangles which were exactly in one plane (XY,XZ,YZ) disapeared
  2342.  
  2343. version 1.22 (25-April-96)
  2344. - bugfix: had problems with sharp edges of TDDD objects
  2345. - bugfix: altitude brush mapping produced ugly results
  2346. - bugfix: fixed some motion blur bugs
  2347. - added 'SURFACE' to 'LOADOBJ' to replace objects surface with own surface
  2348. - added Datatype support for all commands which load brushes
  2349.  
  2350. version 1.25 (08-September-96)
  2351. - the RayStorm kernel is now a shared library
  2352. - added support of new TDDD TXT4 chunk for textures from Imagine 4.0
  2353. - changed the world axis orientation (x left, y up, z in)
  2354.  
  2355. ›0m›1mPC-VERSION›0m
  2356.  
  2357. The PC version is available on the Internet.
  2358.  
  2359. The most import differences between the PC-Version and the Amiga-Version
  2360. are:
  2361.  
  2362. - the Amiga-Version is able to load Imagine texture-files
  2363. - the PC-Version uses its own script language, whereas the Amiga-Version
  2364.   uses ARexx
  2365.  
  2366. ›0m›1mHOMEPAGE›0m
  2367.  
  2368. Come and visit our RayStorm-Homepage! There you can always get the latest
  2369. version of RayStorm and can see some example pictures.
  2370.  
  2371. The address:
  2372. http://sol.wohnheim.uni-ulm.de/~calvin/raystorm.html
  2373.  
  2374. ›0m›1mFUTURE ADDITIONS›0m
  2375.  
  2376. - modeler
  2377. - more objects (torus, cylinder, ...)
  2378. - JPEG-saver
  2379. - use Imagine staging files
  2380. - animation language (ALAN)
  2381. - shadow caching
  2382. - more textures
  2383. - don't allocate whole picture buffer at once
  2384. - diffuse reflectivity
  2385. - diffuse transparency
  2386. - better light FX (lens flares)
  2387. - log file
  2388. - apply post-2D-FX
  2389. - spline interpolation for actors
  2390. - load Lightwave format
  2391. - CSG (Constructive Solid Geometry)
  2392. - metaballs
  2393. - some extra programs (e.g. terrain and plant generation)
  2394.  
  2395. Advanced Animation and Rendering Techniques:
  2396. Theory and Practice
  2397.  
  2398. by
  2399. Alan Watt, Mark Watt, Addison-Wesley
  2400.  
  2401. Texturing and Modeling:
  2402. A procedural Approach
  2403. by
  2404.  
  2405. Ebert, Musgrave, Peachy, Perlin, Worley
  2406.  
  2407. ›0m›1m-A-›0m
  2408.   ›3mALIGNMENT       ›0m
  2409.   ›3mAltitude brush  ›0m
  2410.   ›3mAMBIENT         ›0m
  2411.   ›3mANTIALIAS       ›0m
  2412.   ›3mAntialiasing    ›0m
  2413.   ›3mARexx           ›0m
  2414.   ›3mAuthor          ›0m
  2415. ›0m›1m-B-›0m
  2416.   ›3mBackdrop        ›0m
  2417.   ›3mBRUSH           ›0m
  2418.   ›3mBRUSHPATH       ›0m
  2419.   ›3mBump            ›0m
  2420. ›0m›1m-C-›0m
  2421.   ›3mChecker         ›0m
  2422.   ›3mCLEANUP         ›0m
  2423.   ›3mColor brush     ›0m
  2424.   ›3mCommands        ›0m
  2425.   ›3mCredits         ›0m
  2426.   ›3mCylinder mapping›0m
  2427. ›0m›1m-D-›0m
  2428.   ›3mDepth of Field  ›0m
  2429.   ›3mDIFFTRANS       ›0m
  2430.   ›3mDIFFUSE         ›0m
  2431.   ›3mDISPLAY         ›0m
  2432.   ›3mDISTRIB         ›0m
  2433. ›0m›1m-E-›0m
  2434.   ›3mErrors          ›0m
  2435.   ›3mExamples        ›0m
  2436. ›0m›1m-F-›0m
  2437.   ›3mFeatures        ›0m
  2438.   ›3mFilter brush    ›0m
  2439.   ›3mFlat mapping    ›0m
  2440.   ›3mFOGLEN          ›0m
  2441.   ›3mFuture          ›0m
  2442. ›0m›1m-G-›0m
  2443.   ›3mGETERRORSTR     ›0m
  2444. ›0m›1m-H-›0m
  2445.   ›3mHistory         ›0m
  2446.   ›3mHomepage        ›0m
  2447. ›0m›1m-I-›0m
  2448.   ›3mIMTEXTURE       ›0m
  2449.   ›3mInstallation    ›0m
  2450.   ›3mInternals       ›0m
  2451.   ›3mIntroduction    ›0m
  2452. ›0m›1m-L-›0m
  2453.   ›3mLegal Stuff     ›0m
  2454.   ›3mLinear          ›0m
  2455.   ›3mLOADOBJ         ›0m
  2456. ›0m›1m-M-›0m
  2457.   ›3mMarble          ›0m
  2458.   ›3mMotion Blur     ›0m
  2459. ›0m›1m-N-›0m
  2460.   ›3mNEWACTOR        ›0m
  2461.   ›3mNEWSURFACE      ›0m
  2462. ›0m›1m-O-›0m
  2463.   ›3mOBJECTPATH      ›0m
  2464. ›0m›1m-P-›0m
  2465.   ›3mParameters      ›0m
  2466.   ›3mPC-Version      ›0m
  2467.   ›3mPLANE           ›0m
  2468.   ›3mPOINTLIGHT      ›0m
  2469.   ›3mPOSITION        ›0m
  2470. ›0m›1m-Q-›0m
  2471.   ›3mQUIT            ›0m
  2472. ›0m›1m-R-›0m
  2473.   ›3mRadial          ›0m
  2474.   ›3mREFEXP          ›0m
  2475.   ›3mREFLECT         ›0m
  2476.   ›3mReflect brush   ›0m
  2477.   ›3mReflection map  ›0m
  2478.   ›3mREFRINDEX       ›0m
  2479.   ›3mRegister        ›0m
  2480.   ›3mRequirements    ›0m
  2481. ›0m›1m-S-›0m
  2482.   ›3mSAVEPIC         ›0m
  2483.   ›3mSETCAMERA       ›0m
  2484.   ›3mSETSCREEN       ›0m
  2485.   ›3mSETWORLD        ›0m
  2486.   ›3mSIZE            ›0m
  2487.   ›3mSoft shadows    ›0m
  2488.   ›3mSPECTRANS       ›0m
  2489.   ›3mSPECULAR        ›0m
  2490.   ›3mSpecular brush  ›0m
  2491.   ›3mSPHERE          ›0m
  2492.   ›3mSphere mapping  ›0m
  2493.   ›3mSPOTLIGHT       ›0m
  2494.   ›3mStars           ›0m
  2495.   ›3mSTARTRENDER     ›0m
  2496.   ›3mSurface         ›0m
  2497. ›0m›1m-T-›0m
  2498.   ›3mTEXTUREPATH     ›0m
  2499.   ›3mTextures        ›0m
  2500.   ›3mTips&Tricks     ›0m
  2501.   ›3mTRANSEXP        ›0m
  2502.   ›3mTRANSLUC        ›0m
  2503.   ›3mTRANSPAR        ›0m
  2504.   ›3mTRIANGLE        ›0m
  2505.   ›3mTutorials       ›0m
  2506. ›0m›1m-V-›0m
  2507.   ›3mVirtual Memory  ›0m
  2508. ›0m›1m-W-›0m
  2509.   ›3mWINTOFRONT      ›0m
  2510.   ›3mWood            ›0m
  2511.   ›3mWWW             ›0m
  2512.